项目结构如下,把C模块打包成SDK提供给第三方使用
A
|_B
|_C
第三方【上海办公地点】使用后,发现3个同事均只能下载到C模块,C依赖的B和A还有其他C依赖的jar都下载不到
本人+旁边2位同事【杭州办公地点】使用相同的项目,均可以下载到
所以甚至一度以为是不是网络的问题
让上海同事执行了如下命令,把test.log发给我瞅一眼
mvn -X -U clean package > test.log
在test.log中搜索C模块名称YYY,找到如下错误:XXX是artifactId一部分,YYY是C模块名称
[WARNING] The POM for com.XXX.middleware:YYY:jar:3.0.6-20220125.024746-5 is invalid, transitive dependencies (if any) will not be available: 2 problems were encountered while building the effective model for com.XXX.middleware:YYY:3.0.6-SNAPSHOT
[ERROR] ‘dependencies.dependency.version’ for org.junit.jupiter:junit-jupiter-engine:jar is missing. @
[ERROR] ‘dependencies.dependency.version’ for org.junit.vintage:junit-vintage-engine:jar is missing. @
在项目的parent根目录【A模块】下的pom.xml下面有如下依赖
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<!-- 兼容junit4和junit3-->
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
A模块的pom.xml中parent中引入的是springboot,所以上诉两个jar没有显示指定,也可以从springboot中继承过来
显示指定上诉2个jar的版本后,重新发布C模块给上海同事引用,问题解决
猜测可能跟maven的版本有关,我本地使用的是maven的3.8.2版本