4.使用Maven的其他问题

##一.Maven的传递性依赖及调节##
 如果一个工程依赖一个java构件A,而这个java构件A同时依赖另外一个构件B。这样,当工程pom.xml中配置了A时,Maven会自动将B也作为工程的依赖添加进来。如果工程依赖的构件比较多,就会像引入B这样引入许多其他的构件;或者类似引入B的构件系统并不需要,这就可能会对系统构建过程造成冲突和负担。引起这种现象的归根结底就是Maven的传递性依赖引起的。
 这种现象会造成上面所述的麻烦,但也可以带来很多方便。类似的现象很多。比如工程配置依赖spring-aop,则Maven会自动依赖spring-core,因为spring-aop模块要想运行,必须依赖spring-core。
 我们这里的调节主要是为了处理上面所述的麻烦。下面通过示例说明。
 比如,现在引入spring-oxm,maven会自动引入commons-lang,而工程又不需要commons-lang包,或者前面已经引入新版的commons-lang包,这时可以,在dependency节点中添加exclusions节点,如下图所示。Exclusion节点只需要写上groupId和artifactId两个坐标,不需要version坐标。
 这里写图片描述
 经过以上的配置,maven就不会自动引入commons-lang包。
##二.构件的搜索##
 Maven组织建立了Maven中央库,并定义了相关开源组件的坐标。同时,有些网站提供了maven坐标的搜索功能。可以搜索后直接复制添加到需要的pom.xml文件中。
 特别需要提醒的是,不是所有的构件都能在中央库找到,比如有些代码是闭源的,像Oracle的JDBC包,就是这种类型;比如有些开源构建已经过期,所以中央库不再保存相应的构件及其坐标。
 以下列出了常用的几个maven搜索网站:

  • http://www.mvnrepository.com/
  • http://repository.sonatype.org
  • http://www.mvnbrowser.com/
    ##三.Maven常用命令##
  • mvn -version/-v 显示版本信息
  • mvn package 生成target目录,编译、测试代码,生成测试报告,生成jar/war文件
  • mvn compile 编译
  • mvn test 编译并测试
  • mvn clean 清空生成的文件
  • mvn install 在本地 Repository 中安装 jar
  • mvn validate 验证工程是否正确,所有需要的资源是否可用。
  • mvn test-compile 编译项目测试代码。

Maven命令也可以组合使用
比如,mvn clean install 先删除再编译
注意:上面命令是在命令提示符界面下运行的情况,如果是在eclipse中运行,省略“mvn”。
##四.参考资料##
(一)环境搭建http://blog.csdn.net/jolingogo/article/details/8775046
(二)安装m2eclipse插件http://blog.csdn.net/jolingogo/article/details/8796410
(三)使用Maven构建Web项目http://blog.csdn.net/jolingogo/article/details/8796726
(四)使用Maven构建Web项目-测试http://blog.csdn.net/jolingogo/article/details/8797153
(五)使用Maven构建Struts2项目http://blog.csdn.net/jolingogo/article/details/8798052
(六)构建Hibernate项目http://blog.csdn.net/jolingogo/article/details/8798684
(七)构建Spring项目http://blog.csdn.net/jolingogo/article/details/8799307
(八)构建MyBatis项目http://blog.csdn.net/jolingogo/article/details/8801158
(九)构建SSH项目http://blog.csdn.net/jolingogo/article/details/8811817
(十)阶段小结http://blog.csdn.net/jolingogo/article/details/8821375

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stars

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值