我正在使用maven 2.2和nexus 1.4.0
假设我有一个像这样的pom结构(带有相应的版本)
parentproj, v1.0.1
- childproj1, v1.0.2
- childproj2, v1.0.7
Run Code Online (Sandbox Code Playgroud)
childproj1和childproj2代表应用程序的不同部分(例如gui和backend),我希望能够将它们的版本分开,这样我就可以发布新版本的后端而无需发布新版本的gui.
现在,要将此结构部署到Nexus,可以方便地转到parentproj并说
mvn deploy -DperformRelease = true
这会将所有工件部署到Nexus realease存储库.我第一次部署它时工作正常,但第二次遇到问题:让我说我对childproj1进行了更新,以便我们现在有以下版本:
parentproj, v1.0.1
- childproj1, v1.0.3
- childproj2, v1.0.7
Run Code Online (Sandbox Code Playgroud)
在这种情况下,Nexus不会让我从parentproj进行mvn部署,因为它已经在1.0.7版本中有了一个childproj2的副本.Nexus会说"资源,非法请求:ID ='版本'的存储库不允许更新工件." 这很好,我不想错误地更新现有版本.
但我想我想要做的就是能够告诉maven类似于"仅部署那些版本尚未存在于版本库中的工件".
有没有办法做到这一点,还是我必须自己部署每个项目?