您的位置:首页 > 其它

Maven-关于compile/install和local repository的理解

2016-04-03 09:14 267 查看
背景说明:

工作的项目是一个多模块Maven工程,平时增量时需要使用命令对关联的模块进行编译,初步检查代码有没有错,但是最近一编译就报一大堆import找不到或者找不到符号的问题,这个问题比较常见,网上一搜也有很多人问。

因为最初对Maven没什么概念(其实现在也一样),编译的命令被我从 install 改成了 compile ,因为这样更快一些。。但之前都一直很正常,现在突然就编译各种乱七八糟的错误,于是各种百度google查查,有人说是jdk的问题,有人说是文件编码问题,但查了之后发现都不是,最终在一篇帖子的回复里看到了:



看到这个的时候,才"恍然大悟" pom 文件里配置的那些依赖到底是怎么用的,之前只是从表面上看出,这个模块需要依赖其他的模块,但不知道 compile、install 环节都是怎么利用这些模块的,加上和BOSS聊天的时候,听到他提到"本地仓库"四个字,瞬间感觉明白了什么,所以在本机做了以下的测试来加深一下Maven编译多模块项目时的简单原理。

新建Maven工程:





然后去修改common模块的pom文件,添加对utils的依赖:

<dependency>
<groupId>com.mxm</groupId>
<artifactId>Utils</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>


编译测试:

直接对common模块编译:



报错很明显,没有utils模块的jar包

对utils模块使用compile命令:



成功,但这时是不会把项目编译成jar包放在本地仓库中的。

对utils模块使用install命令:



这时就可以看到在本地仓库中同步了jar包。

这时再对common模块编译:



通过,这时把本地仓库下的Utils-0.0.1-SNAPSHOT.jar删掉,再编译依旧会报错。

结论:

所以,验证之后对Maven编译和多模块间的依赖有了理解,虽然这可能是Maven本身的基础知识,但因为一直对Maven没有研究,只是凭pom文件中的配置简单个人理解,造成了编译出错这种比较低级的问题。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: