一次Maven项目编译失败的分析过程
2015-07-25 13:28
176 查看
在执行 mvn clean compile 命令时,抛出了如下
当前编译的是account-service模块,该模块有依赖同一项目下的其他模块,但这里却说找不到 account-parent 模块的 artifact(account-parent是父模块,其他是子模块),
首先,怀疑是不是account-parent模块需要先编译打包好,但按理说,如果已经在pom里声明了parent节点,是不需要再手动一个模块一个模块的去编译,maven会为你做这些事的,但无奈没有头绪,于是去到account-parent模块下执行 mvn clean install 一下,一切正常,再回来编译account-service,问题依旧。但我们已经排除了account-service依赖的模块需要手动编译的假说!
问题还是要解决的,终端上显示的这一行ERROR似乎再过简洁,可以在命令后加上 -e 参数来查看 full stack trace,由于很长,我这里只截取其中一部分,纵然如此,并没什么用,只是重复的说 could not find, could not find, could not find balabalabala………..
接着再进一步,将 DEBUG log 信息打印出来,这次更多了,耐心从上往下看,终于发现了一些端倪,如下图:
“Could not find metadata com.searover.mvnbook.account:account-parent:1.0.0-SNAPSHOT/maven-metadata.xml in local (/Users/searover/.m2/repository)”
说得已经很明确了,就是找不到。我明明已经install成功了,怎么可能找不到,为了验证这句话,我决定亲自去该目录下看看,
结果,终于发现了问题,原来出在版本号上,它要找的是 1.0.0-SNAPSHOT,而本地仓库里安装的却是1.0-SNAPSHOT,难怪找不到,然后仔细检查一下项目中的几个模块,惊讶的发现有的模块声明的version是1.0.0,而有的是1.0,杂乱无章,如此随意,难怪掉坑里爬不出来。
改正之后,项目就顺序通过编译了:
反思:论细节的重要性!
当前编译的是account-service模块,该模块有依赖同一项目下的其他模块,但这里却说找不到 account-parent 模块的 artifact(account-parent是父模块,其他是子模块),
首先,怀疑是不是account-parent模块需要先编译打包好,但按理说,如果已经在pom里声明了parent节点,是不需要再手动一个模块一个模块的去编译,maven会为你做这些事的,但无奈没有头绪,于是去到account-parent模块下执行 mvn clean install 一下,一切正常,再回来编译account-service,问题依旧。但我们已经排除了account-service依赖的模块需要手动编译的假说!
问题还是要解决的,终端上显示的这一行ERROR似乎再过简洁,可以在命令后加上 -e 参数来查看 full stack trace,由于很长,我这里只截取其中一部分,纵然如此,并没什么用,只是重复的说 could not find, could not find, could not find balabalabala………..
接着再进一步,将 DEBUG log 信息打印出来,这次更多了,耐心从上往下看,终于发现了一些端倪,如下图:
“Could not find metadata com.searover.mvnbook.account:account-parent:1.0.0-SNAPSHOT/maven-metadata.xml in local (/Users/searover/.m2/repository)”
说得已经很明确了,就是找不到。我明明已经install成功了,怎么可能找不到,为了验证这句话,我决定亲自去该目录下看看,
结果,终于发现了问题,原来出在版本号上,它要找的是 1.0.0-SNAPSHOT,而本地仓库里安装的却是1.0-SNAPSHOT,难怪找不到,然后仔细检查一下项目中的几个模块,惊讶的发现有的模块声明的version是1.0.0,而有的是1.0,杂乱无章,如此随意,难怪掉坑里爬不出来。
改正之后,项目就顺序通过编译了:
反思:论细节的重要性!
相关文章推荐
- 网站的安全性测试工具网站
- 设计模式汇总
- SAP创建中国版免费在线课程openSAP
- HttpURLConnection 下载
- Objective-C面向对象-对象和类
- redis(七)-持久化
- hadoop2.7.0版本搭建伪分布式环境
- Servlet 实现访问量的统计小案例
- 1011. A+B和C (15)
- 小白学开发(iOS)OC_封装_成员变量(set get方法)(2015-07-24)
- 分区表在安装系统(MBR)丢失或损坏
- CodeForces 454C——数学——Little Pony and Expected Maximum
- lua 中ipairs 和 pairs 区别
- STM32是如何进入中断函数xxx_IRQHandler的
- VIM使用(一) VIM插件管理利器-vundle
- 五布局之线性布局LinearLayout
- LoadRunner脚本编码规范
- 斯坦福大学自然语言处理第七课“情感分析(Sentiment Analysis)
- linux 基础命令
- 动态规划---最长公共子序列