首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免兄弟姐妹子模块上的Maven版本?

如何避免兄弟姐妹子模块上的Maven版本?
EN

Stack Overflow用户
提问于 2018-12-06 02:35:31
回答 1查看 407关注 0票数 1

我有一个Maven结构,如:

代码语言:javascript
复制
- Parent
  - Child 1
  - Child 2

我已经定义了Parent <version>1.0-SNAPSHOT</version>,并且没有版本的Child 1Child 2,这样两个子版本都将自动继承Parent版本。

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

代码语言:javascript
复制
<dependency>
    <groupId>com.myapp</groupId>
    <artifactId>child-1</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

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

代码语言:javascript
复制
<dependency>
    <groupId>com.myapp</groupId>
    <artifactId>child-1</artifactId>
</dependency>

是否有一种方法可以避免引用Child 1 Child 2 verion on Child 2 POM?

自动实现这一点的可能性要小得多。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-06 20:23:26

当然,你能做到的。

亲本pom.xml

代码语言:javascript
复制
<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>

然后只引用没有版本的兄弟姐妹:

儿童1 pom.xml

代码语言:javascript
复制
<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

代码语言:javascript
复制
<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发布插件都可以处理这个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53643783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档