【发布时间】:2012-04-18 12:48:03
【问题描述】:
我已经开始学习Maven,有以下问题:
我想动态指定构建 maven 项目的依赖项,而不是使用 POM 中指定的依赖项 - 有没有办法做到这一点?
所以虽然我在 POM 中指定了以下依赖项
...
<dependencies>
<dependency>
<groupId>group</groupId>
<artifactId>ProjectComponent</artifactId>
<version>1.0</version>
</dependency>
...
我想在构建命令中指定我想使用不同的版本。 有没有办法指定这个?
我的想法是我希望在 Jenkins 中进行集成构建,并依赖于特定分支的系统最新可用快照。该快照尚未发布到 maven 存储库,所以我想在 Jenkins 中获取它并为 mvn build 指定一个依赖项。
谢谢!
可能的解决方案:我最终得到的是使用 ${my.lib.version} 构造并在调用 mvn 时使用 -Dmy.lib.version=1.0-SNAPSHOT" 指定它。因此,我可以将它用于 Jenkins 集成构建,方法是从 svn 获取依赖项的任意快照版本并将其快照版本提供给集成构建 pom。
【问题讨论】:
-
你想要动态依赖的意图是什么?你能再解释一下吗?
-
@khmarbaise 我的想法是,我希望在 Jenkins 中进行集成构建,并依赖于特定分支的系统最新可用快照。该快照尚未发布到 maven 存储库,所以我想在 Jenkins 中获取它并为 mvn build 指定一个依赖项。
-
最好的解决方案是使用 SNAPSHOT 版本来达到这个目的。
-
@khmarbaise 这也是我最初的想法,但是如果没有发布,我无法将 pom 的依赖更新到 SNAPSHOT 版本。
标签: maven-3