【问题标题】:Set .m2 for a single build-job to different location将单个构建作业的 .m2 设置为不同的位置
【发布时间】:2011-05-31 16:23:10
【问题描述】:

对于构建服务器上的构建作业,我想将.m2 位置设置为不同于user.home/.m2 的位置。

我以为我可以通过为构建设置 export HOME=$WORKSPACE 来欺骗 maven,但工件不断被下载并部署到构建用户的主目录。

因此,我认为 maven 使用了 user.home 系统属性,这似乎没有考虑到 $HOME

有解决办法吗?我们有一个本地 maven 缓存,我确实想下载此构建作业的所有工件,并防止任何部署到构建用户的 $HOME/.m2 中,以便将各个构建作业彼此分开。至少我想要一些工作。

有什么想法吗?提前致谢!

【问题讨论】:

    标签: java maven


    【解决方案1】:

    您可以从命令行覆盖 settings.xml 文件的位置...

    mvn <target> --settings /path/to/settings.xml
    

    您可以从这里自定义任何您需要的东西。

    [更新] 您甚至可以通过--global-settings /path/to/global/settings.xml

    覆盖通常与用户的 settings.xml 从他们的 .m2 目录合并的“全局”设置

    【讨论】:

    • 我可以通过环境变量以某种方式设置它吗?如果可能的话,我想在不实际更改构建文件的情况下配置构建脚本。但这只是很高兴。 :)
    • @Martin C.:我不知道你是如何启动构建脚本的,所以我不能说。
    • 大部分是通过 Jenkins 服务器上的 shell 脚本进行的,因为对于那些我想修改 .m2 位置的人来说,还需要额外的预处理步骤。有些是构建者工作,有些是 Gradle 工作。 Buildr 在这方面是可配置的,但 Gradle 使用默认的 maven,看起来。
    • 我不直接知道这些;也许你可以提出一个关于 Gradle 的新问题并参考这个问题。
    【解决方案2】:

    如果您只想指定自己的本地存储库,可以使用选项maven.repo.local

    -Dmaven.repo.local=/path/to/your/repository
    

    资源:

    • maven.apache.org(在 maven-1.x 网站上,但仍然适用于 maven 3.0 - 虽然找不到此版本的可靠来源)

    【讨论】:

      猜你喜欢
      • 2012-06-01
      • 2011-07-12
      • 2010-12-05
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      相关资源
      最近更新 更多