gpt4 book ai didi

Maven继承与分发管理

转载 作者:行者123 更新时间:2023-12-04 17:53:35 27 4
gpt4 key购买 nike

我有开发人员在我的组织外部使用 Maven parents。对于这种特殊情况,父级是 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>

他们的构建正在运行,并且他们已经针对这些依赖项进行了很长时间的测试,理想情况下我不想更改他们的继承。

作为发布工程师,我遇到的问题是生成的 Artifact 需要存储在内部 Maven 存储库中。过去,我们通过定义了一个 Maven Parent 来做到这一点,所有项目都将其作为其继承链的根。

我最终可能会管理数百个 POMS,但我不想把每个 POMS 都放进去,就好像我们必须移动内部 Maven 存储库一样,我将不得不管理大量荒谬的项目来反射(reflect)变化。

有什么方法可以设置我基本上没有对 parent 的写入权限?这可以在 MAVEN_OPTS 中设置或作为 CI 服务器上的属性文件吗?我尝试使用 properties-maven-plugin 输入我们所有的属性,但 distributionManagement 不会接受属性作为变量。

最佳答案

保留您的组织父 pom(除了您之前指定的 parent 元素)需要您将 Spring Boot 依赖项作为 bom:

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.4.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

但我认为侵入性较小的方法可能是使用以下方法为您的模块设置正确的版本:

mvn versions:set 在构建 Artifact 并部署到 Nexus(或其他 Maven 存储库管理器)之前

关于Maven继承与分发管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42295836/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com