maven子项目单独install

ai 父项目下包含 bigdata, carpool, queue-passenger, order-hall四个子项目,互相独立,但某天运维平台突然发生了一件奇怪的事儿,queue-passenger和order-hall无法正常编译,错误原因如下:

6:37:25,971 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.5.2:install (default-install) on project dispatcher-carpooling: Failed to install metadata com.sq.ai.dispatcher:dispatcher-carpooling:1.0-SNAPSHOT/maven-metadata.xml: Could not parse metadata /u01/maven3/.m2/repository/com/sq/ai/dispatcher/dispatcher-carpooling/1.0-SNAPSHOT/maven-metadata-local.xml: in epilog non whitespace content is not allowed but got s (position: END_TAG seen ...\ns... @25:2)  -> [Help 1]

异常的大概意思是在本地install  dispatcher-carpooling-1.0-SNAPSHOT时,生成的maven-metadata-local.xml文件中含有特殊字符,导致编译中断,停止。

百度后,大体的结论是maven在生成maven-metadata-local.xml时,因网络等原因,导致字符错误。解决方法是删除机器文件maven-metadata-local.xml,重新编译即可。

运维同学在编译机上找到maven-metadata-local.xml后并删除,确实解决了问题。

但是疑惑是在构建queue-passenger或order-hall时,为什么会构建carpool项目?两者是平等的兄弟关系,不存在依赖。而bigdata项目的构建竟然不受carpool的影响。

在运维平台,仔细对比maven命令时发现,

bigdata 项目构建命令   clean install -U -Dmaven.test.skip=true -pl dispatcher-bigdata -am

queue-passenger构建命令  clean install -DskipTests -U -e

order-hall构建命令  clean install -DskipTests -U -e

结论: pl参数指定构建子项目dispatcher-bigdata,am参数表示级联构建dispatcher-bigdata关联的项目  -U表示每次构建时强制重拉关联jar包的快照版本。如果没有pl参数,则构建父项目下的所有子项目。

参数的详细说明参见https://www.cnblogs.com/hiver/p/7850954.html

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值