1.现象
deploy发布了一个新的jar包,引入到别的项目后,新jar包的依赖没有获取到,导致需要一一引入依赖
2.原因
maven在传递依赖时,是根据该jar包所在的仓库目录下的同名pom文件找到其依赖的。
上述问题就是在发布时,没有生成这样的同名.pom文件
3.解决方案
在deploy时,加一个选项指定pom文件 -DpomFile=pom.xml
mvn deploy:deploy-file
-DgroupId={yourProject} \
-DartifactId={yourProject}\
-Dfile={yourFile}\ // jar 包路径
-Durl={URL} \// 私服URL
-DrepositoryId=releases\
-Dpackaging=jar\ // 指定格式,如果不写,一句 pom 文件中
-DpomFile=pom.xml // 指定该 jar 包的 pom 文件,如不指定,将生成一个默认的 pom——导致不可用
如
mvn deploy:deploy-file -DgroupId=com.xxx.xxx -DartifactId=xxx -Dversion=1.1-SNAPSHOT -Dpackaging=jar -DpomFile=pom.xml -Dmaven.test.skip=true -Dfile=target/xxx-1.1-SNAPSHOT.jar -Dsources=target/xxx-1.1-SNAPSHOT-sources.jar -Durl=http://xxx.xxx.xxx/nexus/content/repositories/${REPO}/ -DrepositoryId=${REPO}
详情请见 官方文档