【发布时间】:2017-07-06 20:32:51
【问题描述】:
我的开发人员在我的组织外部使用 Maven 父级。对于这种特殊情况,父级是 spring-boot-starter-parent
<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 来做到这一点,它定义了所有项目都将其作为继承链的根。
我最终可能会管理数百个 POMS,我不想将每个 POMS 都放入其中,就好像我们必须移动内部 Maven 存储库一样,我将不得不管理数量可笑的项目来反映变化。
有什么方法可以设置我基本上没有对父母的写入权限?这可以在 MAVEN_OPTS 中设置还是作为 CI 服务器上的属性文件进行设置?我尝试使用 properties-maven-plugin 来输入我们所有的属性,但 distributionManagement 不接受属性作为变量。
【问题讨论】:
-
我不太明白你想要达到什么目的。您构建的工件应该转到工件存储库,例如 Nexus 或 Artifactory。通常,它们将由构建服务器部署到该存储库。您还可以代理 Nexus/Artifactory 中的外部存储库,以便在内部拥有所有使用过的父 pom 的副本。
-
开发团队通常使用父 pom,它本质上定义了我们的超级 POM 版本。在这种情况下,开发团队使用的是 spring-boot-starter-parent 而不是“我们的”父级,因此不会继承与我们其他构建相同的东西。执行 Maven 发布:执行无法部署,因为找不到发布存储库(因为没有部署管理集)。我希望能够允许开发人员使用组织外部(即不属于)的父母,并且仍然能够将它们发布到我们的内部回购
标签: maven inheritance parent-pom