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.7k
1 个回答

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>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题