【发布时间】:2010-12-24 00:52:18
【问题描述】:
我正在使用 maven 2.2 和 nexus 1.4.0
假设我有一个这样的 pom 结构(带有相应的版本)
parentproj, v1.0.1
- childproj1, v1.0.2
- childproj2, v1.0.7
childproj1 和 childproj2 代表应用程序的不同部分(例如 gui 和后端),我希望能够将它们的版本分开,以便我可以发布新版本的后端而不必发布新版本的 gui .
现在,要将这个结构部署到 Nexus,去 parentproj 说会很方便
mvn deploy -DperformRelease=true
这会将所有工件部署到 Nexus realease 存储库。这在我第一次部署时运行良好,但第二次遇到问题:假设我对 childproj1 进行了更新,因此我们现在拥有以下版本:
parentproj, v1.0.1
- childproj1, v1.0.3
- childproj2, v1.0.7
在这种情况下,Nexus 不会让我从 parentproj 执行 mvn deploy,因为它在 1.0.7 版本中已经有 childproj2 的副本。 Nexus 会说“资源,非法请求:ID='releases' 的存储库不允许更新工件。”这很好,我不想错误地更新现有版本。
但我想我想做的是能够告诉 maven 类似“仅部署那些版本尚未出现在发布存储库中的工件”。
有没有办法做到这一点,还是我必须自己部署每个项目?
【问题讨论】:
标签: maven-2 deployment nexus