2大功能
常用命令
依赖范围,scope
依赖传递
可选依赖
Optional标签标示该依赖是否可选,默认是false。如果为true,则表示该依赖不会传递下去,如果为false,则会传递下去。
<dependency> <groupId>com.itheima.maven</groupId> <artifactId>MavenFirst</artifactId> <version>0.0.1-SNAPSHOT</version> <optional>true</optional> </dependency>
排除依赖,Exclusions标签可以排除依赖
<!-- 第一直接依赖 --> <dependency> <groupId>com.itheima.maven</groupId> <artifactId>MavenSecond</artifactId> <version>0.0.1-SNAPSHOT</version> <exclusions> <exclusion> <groupId>com.itheima.maven</groupId> <artifactId>MavenFirst</artifactId> </exclusion> </exclusions>
生命周期可以理解为项目构建的步骤集合,maven有三个生命周期:clean生命周期、default生命周期、site生命周期
生命周期是由多个阶段(Phase)组成。每个阶段都是一个完整的功能,比如mvn clean中的clean就是一个阶段。
pre-clean 执行一些需要在clean之前完成的工作
clean 移除所有上一次构建生成的文件
post-clean 执行一些需要在clean之后立刻完成的工作
validate
generate-sources
process-sources
generate-resources
process-resources 复制并处理资源文件,至目标目录,准备打包。
compile 编译项目的源代码。
process-classes
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources 复制并处理资源文件,至目标测试目录。
test-compile 编译测试源代码。
process-test-classes
test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
prepare-package
package 接受编译好的代码,打包成可发布的格式,如 JAR 。
pre-integration-test
integration-test
post-integration-test
verify
install 将包安装至本地仓库,以让其它项目依赖。
deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享。
pre-site 执行一些需要在生成站点文档之前完成的工作
site 生成项目的站点文档
post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
site-deploy 将生成的站点文档部署到特定的服务器上
<build> <plugins> <!-- 编译插件,指定编译用的的jdk版本 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>
父工程抽取版本号:<properties>的子标签可以任意指定
<properties> <junit.version>4.9</junit.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> </dependency> </dependencies> </dependencyManagement>
在工程中使用父工程管理的版本号时不需要指定version
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency>