Maven 的POM文件
- 版本信息
- 构建方式
- 插件管理
- 依赖管理
settings.xml文件
- 可以设置对应的中心仓地址
- 指定本地仓的文件路径
依赖的作用范围
- 用下面的方式指定依赖的范围
<dependency>
<scope>provided</scope>
</dependency>
- compile : 主程序有效,测试程序有效,编译包含,打包包含;
- test: 主程序无效,测试程序有效,编译不包含,打包不包含;
- provided: 主程序有效,测试程序有效,编译不包含,打包不包含;
排除依赖的包
- 项目中用来排除一下不稳定的依赖
依赖的传递性
<dependency>
<groupId>com.hello</groupId>
<artifactId>hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 用来排除不想要的依赖包 -->
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
父工程
- 统一对子项目进行版本管理和统一的依赖管理
- 父工程的打包要指定为pom方式
<packaging>pom</packaging>
mvn命令和对应的生命周期
- maven的三大独立的生命周期
- clean :清理项目周期,里面包含了三个阶段,mvn clean只是其中的一个阶段,主要是做一些清理工作
- default : 构建项目,对应下面的默认生命周期,当然其中还有很多阶段并未罗列出来
- site : 生产项目站点的生命周期
-
clean,compile ,test,package,install,deploy
-
执行后面的命令的时候之前的命令默认也会执行
-
常见的maven命令
mvn clean
mvn compile 编译项目源代码
mvn test-compile // 编译测试源代码
mvn test
mvn package 接收编译好的代码,打包成可发布的包
mvn package Dmaven.test.skip=true // 打包时跳过测试
mvn install 将包安装到本地仓库
mvn install Dmaven.test.skip=true // 安装时跳过测试
mvn deploy 将包复制到远程仓库
mvn deploy Dmaven.test.skip=true // 发布时跳过测试
mvn exec:java -Dexec.mainClass="主程序入口名,不需要扩展名" -Dexec.args="参数1 参数2 .."
mvn site 生产项目的站点文件,就是对项目的说明文件,执行命令之前需要引入对应的插件
maven 插件管理
- maven 命令是基于 插件来完成的 ,所以可以在pom文件中指定对应的插件,来表示执行对应的命令的时候使用的插件是哪一个
- Maven 的核心仅仅定义了抽象的生命周期,具体的任务都是交由插件完成的。
<build>
<plugins>
<!-- 编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
...
...
</plugins>
</build>