我有开发人员在我的组织之外使用Maven父母。对于这种特殊的情况下,父亲是弹簧引导启动父Maven继承和分发管理
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
他们的版本是工作,他们已经对这些相关测试了很长时间,我非常不希望改变他们的产业。
我作为发布工程师的问题是生成的工件需要存储在内部的Maven存储库中。我们历史上曾经通过一个Maven Parent来完成这个工作,该Maven Parent定义了所有的项目并且没有其他的东西,所有的项目都作为它们的继承链的根源。
我最终可能会管理数百个POMS,而且我不想放在每个POM中,就好像我们必须移动内部Maven存储库一样,我将不得不管理一些荒谬的项目来反映更改。
有什么办法可以设置我基本上没有父母写入权限的地方吗?这可以在MAVEN_OPTS中设置,或者作为CI服务器上的属性文件进行设置?我尝试使用properties-maven-plugin来输入我们所有的属性,但distributionManagement不会接受属性作为变量。
我真的不明白你想达到的目标。您构建的工件应该转到工件存储库,如Nexus或Artifactory。通常,它们将由构建服务器部署到该存储库。您也可以在Nexus/Artifactory中代理外部存储库,以便您拥有所有使用的父级poms的副本。 –
开发团队通常使用基本上定义我们的超级POM版本的父pom。在这种情况下,开发团队使用的是spring-boot-starter-parent而不是“我们的”父项,因此它不会继承与我们其他版本相同的内容。执行Maven发行版:执行无法部署,因为无法找到版本库(因为没有deploymentManagement集)。我希望能够允许开发人员将外部父母(即不属于)的父母用于组织,并且仍然能够将他们发布到我们的内部回购中。 – shaunSCM