A项目,有两个模块,一个纯feign接口的api模块,一个实现feign接口的service模块,有如下疑问?

1.A项目有两个模块,一个纯feign接口的api模块,一个实现了feign接口的service模块
2.把A项目的api模块deploy到公司的私有maven仓库
3.B项目引入A项目的api依赖,调用api中的接口

有以下疑问
1.api模块的pom文件中,<parent>标签是A项目的pom文件,可是在公司的私有仓库中,并没有A项目,只有api模块项目,api模块引入的依赖所需要的版本号都在A项目的pom文件中定义的,deploy api模块的时候,并没有带版本号相关的信息啊,那么B项目引入的时候为啥还可以下载下来对应版本的依赖呢?

2.api模块引入了mybatis-plus,B项目页面引入了mybatis-plus,但是她俩的版本不一致,必须把B项目的版本号改成跟A项目一直,B项目才能正常运行,否则就报依赖冲突,出了改版本号,有没有其他方法解决api模块与B项目的依赖冲突啊?
如下用了排除,依然不生效

<dependency>

<groupId>com.abc.ekm</groupId>

<artifactId>abc-api</artifactId>

<version>${project.version}</version>

<exclusions>

<exclusion>

<artifactId>com.baomidou</artifactId>

<groupId>mybatis-plus-boot-starter</groupId>

</exclusion>

<exclusion>

<groupId>com.baomidou</groupId>

<artifactId>mybatis-plus-generator</artifactId>

</exclusion>

</exclusions>

</dependency>


回答:

1、应该是你本地 install 了 A 项目,B 在引入 api 模块时,在你本地找到了 A 项目。

发布时不想发布子项目,加上 --non-recursive

2、使用 exclusions 排除 mybatis-plus

<dependency>

<groupId>xxxx</groupId>

<artifactId>module-api</artifactId>

<exclusions>

<exclusion>

<groupId>com.baomidou</groupId>

<artifactId>*</artifactId>

</exclusion>

</exclusions>

</dependency>

以上是 A项目,有两个模块,一个纯feign接口的api模块,一个实现feign接口的service模块,有如下疑问? 的全部内容, 来源链接: utcz.com/p/944695.html

回到顶部