我们使用maven-release-plugin将我们的maven组件发布到存储库(ies)。但是,其中一些组件在某些依赖项上使用范围。我们想要这个,因为一些依赖项经常被释放(快照不是一个选项)
当我们使用release插件时,范围会被检入scm并部署到我们的maven repo。这没有任何意义,因为maven存储库中未解析的pom文件可以(并且将)确保将一个构建的其他构建更改为另一个构建。
我们尝试使用release:prepare-with-pom,但是刚刚创建了一个新的pom文件,它被提交到scm(release-pom.xml)。带有范围的原始pom仍然部署到回购。
作为另一个障碍,我们希望保留下一个开发版本的范围。所以我们的头/后备箱不应该解决。
我有这种感觉,我们正在以错误的方式解决这个问题。
任何人都可以帮助我们解决问题吗?如果还有其他方法可以做到这一点,我们将非常感谢您的建议。
答案 0 :(得分:1)
我偶然发现了两个已知的maven发布插件错误。请参阅以下错误报告:
这些计划在版本2.2.3或2.3版的maven-release-plugin
中发布编辑为对发布的评论的回复: 我同意,为什么这些错误解决了我的问题并不明显。我会试着详细说明。
要让发布插件使用已解析的pom文件并进行部署,您需要首先使用release:prepare-with-pom然后release:perform。如果要执行部署已解析的pom文件,则需要将config中的pomFileName设置为release-pom.xml。如果没有,它会部署未解析的pom.xml。部署带范围的pom文件不是一个好主意。这就是需要618的原因。
727是必需的,因为release-pom.xml仅在标签上签入。执行发布时:执行标记在目标目录中签出。因为该插件正在模块根目录中查找release-pom.xml并且显示为空。如果没有pomFileName配置,这也可能出错,但不太可能。
Ranven在Maven中通常是一个坏主意,因为它是错误的,因为Maven默认情况下不会部署已解析的pom文件。如果Maven总是部署已解决的pom文件范围将是一个好主意。