4.使用Maven的其他问题
来源:互联网 发布:lol数据受损 编辑:程序博客网 时间:2024/04/26 19:41
一.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
- 4.使用Maven的其他问题
- 使用Eclipse内置的Maven下载其他包
- 其他软件的使用问题记录
- 【记录】关于Eclipse的Maven项目导入自定义的其他Maven项目的问题
- 使用Maven遇到的问题
- 使用maven时的问题
- maven使用遇到的问题
- 使用maven遇到的问题
- maven使用私服(其他我没测试)无法导入jar文件问题
- js的其他问题
- 程序设计的其他问题
- 新导入其他机器Maven项目会出现的问题总结
- 使用exec启动其他进程时可能出现的问题
- eclipse 使用 maven 遇到的问题
- 使用maven javadoc 控制台乱码的问题
- 使用eclipse/STS maven遇到的问题
- Maven使用遇到的问题总结
- 使用maven引入weblogic.jar的问题
- 关于移动设备上的一些按键值及其对应的事件
- 关于使用phpMyAdmin进行可视化操作Mysql数据库
- Web工程手动部署到Tomcat下的方法
- Eclipse调试常用技巧
- 如何获得谷歌地图开发密钥
- 4.使用Maven的其他问题
- pip代理的使用方法
- Android关于java.lang.NoClassDefFoundError问题
- keil编译出错关于__use_no_semihosting_swi的使用
- Android平台Camera实时滤镜实现方法探讨(五)--GLSurfaceView实现Camera预览
- Day 7: GruntJS 在线重载 提升生产率至新境界
- JDBC连接MySQL数据库关键的四个步骤
- ps aux指令詳解
- @XmlAccessorType详解