我正在使用 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 部署 -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 诸如“仅部署那些具有发布存储库中尚未存在的版本的工件”之类的东西。
有没有办法做到这一点,还是我必须自己部署每个项目?