对于一个没有用过任何构建工具的屌丝来说,学习maven是一个见证奇迹的过程。
如果说c++开发是裸奔的话,java开发就相当于穿上了衣服,maven就相当于拿起了机枪大炮。
1.指令:
mvn clean compile: 首先清空之前生成的内容,然后编译
mvn clean test: 清空,编译,运行测试
mvn clean package: 清空,编译,封装成jar包(默认jar)
mvn clean install: 将例程安装到本地maven库中
2.maven仓库:
http://repo1.maven.org/maven2/ 中央仓库
http://maven.net.cn/content/groups/public/ 中央仓库在国内的镜像
http://download.java.net/maven/2/ java.net Maven库
http://repository.jboss.com/maven2 JBoss Maven库
几个仓储搜索服务:
http://repository.sonatype.org/ Sonatype Nexus
http://www.javana.com/jarvana/ Jarvana
http://www.mvnbrowser.com MVNbrowser
http://mvnrepository.com MVNrepository
3.scope:
compile 编译依赖范围。默认设定。对于编译、测试、运行有效。如spring-core。
test 测试依赖范围。只有测试时有效。如JUnit。
provided 已提供依赖范围。对于编译和测试有效。如servlet-api。
runtime 运行依赖范围。对于测试和运行有效。如JDBC。
system 系统依赖范围。该依赖范围与provided一致,只是使用时需要显式地指定依赖文件路径,用于中央仓库中没有数据包的情况。
import 导入依赖范围。不会对编译测试运行产生实际的影响,有其专门用途。
4.依赖传递:
|
compile |
test |
provided |
runtime |
compile |
compile |
- |
- |
runtime |
test |
test |
- |
- |
test |
provided |
provided |
- |
provided |
provided |
runtime |
runtime |
- |
- |
runtime |
5.优化依赖:
mvn dependency:list 查看当前项目的已解析依赖
mvn dependency:tree 查看当前项目的依赖树
mvn dependency:analyze 分析当前项目的依赖