问题现象
开发了一个jar包本机deploy到maven私服仓库之后,本机可以正常引用,但其他开发同学依赖该jar包都失败,但在maven仓库上能看见该jar包,就是下不下来
过程
项目是一个基于maven构建的父子多模块的一个idea工程,其中有一个项目job-core被其他几个兄弟模块依赖,为了版本管理的方便在项目根目录的pom文件中定义了一个properties
<properties>
<java.version>1.8</java.version>
<job.core.version>1.9.1.X-SNAPSHOT</job.core.version>
</properties>
xxl-job-core这个模块的pom.xml定义如
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.company</groupId>
<artifactId>xxl-job</artifactId>
<version>1.9.1</version>
</parent>
<artifactId>xxl-job-core</artifactId>
<packaging>jar</packaging>
<version>${job.core.version}</version>
其他模块中依赖xxl-job-core都使用变量
<dependency>
<groupId>com.company</groupId>
<artifactId>xxl-job-core</artifactId>
<version>${job.core.version}</version>
</dependency>
原因
xxl-job-core这个模块中引用的parent中的变量${job.core.version}在其他项目中找不到
总结
在父子结构多模块中,有一个模块需要被外部引用时,那么该模块不能有引用parent的变量,否则外部项目的依赖将失败