gpt4 book ai didi

java - 如何避免兄弟子模块上的 Maven 版本?

转载 作者:行者123 更新时间:2023-12-02 10:30:31 26 4
gpt4 key购买 nike

我有一个 Maven 结构,例如:

- Parent
- Child 1
- Child 2

我已经定义了Parent <version>1.0-SNAPSHOT</version>并离开Child 1Child 2如果没有版本,这样两个 child 都会继承 Parent自动版本。

问题是,我需要引用Child 1作为 Child 2 的依赖项,唯一的方法就是传递 Child 1版本,如:

<dependency>
<groupId>com.myapp</groupId>
<artifactId>child-1</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>

我想避免这种情况,因为两个 child 都会继承 Parent版本无论如何,但我不能包括 Child 1如:

<dependency>
<groupId>com.myapp</groupId>
<artifactId>child-1</artifactId>
</dependency>

有没有办法避免引用 Child 1版本 Child 2 POM?

自动获取此信息将大大减少出错的可能性。

最佳答案

当然,你可以做到。

pom.xml:

<groupId>com.acme</groupId>
<artifactId>root</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>

<modules>
<module>child-1</module>
<module>child-2</module>
</modules>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.acme</groupId>
<artifactId>child-1</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.acme</groupId>
<artifactId>child-2</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<dependencyManagement>

然后只引用没有版本的 sibling :

子 1 pom.xml:

<parent>
<groupId>com.acme</groupId>
<artifactId>root</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>

<artifactId>child-1</artifactId>
<name>Child 1</name>

<dependencies>
<dependency>
<groupId>com.acme</groupId>
<artifactId>child-2</artifactId>
</dependency>
</dependencies>

子 2 pom.xml:

<parent>
<groupId>com.acme</groupId>
<artifactId>root</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>

<artifactId>child-2</artifactId>
<name>Child 2</name>

<dependencies>
<dependency>
<groupId>com.acme</groupId>
<artifactId>child-1</artifactId>
</dependency>
</dependencies>

子项中显式的父版本不是问题,因为 mvn versions:set 和 Maven Release Plugin 都可以处理这个问题。

关于java - 如何避免兄弟子模块上的 Maven 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53643783/

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