1 Maven简介
Maven核心功能
- 依赖管理——所有的jar包都放在Maven仓库中,通过Maven坐标来进行部署
- 一键构建
Maven项目标准目录结构
src/main/java
- 核心代码部分src/main/resources
- 配置文件部分src/test/java
- 测试代码部分src/test/resources
- 测试配置文件src/main/webapp
- 页面资源,js,css,图片等
Maven常用命令
命令 | 说明 |
---|---|
mvn clean | 删除编译信息(target文件夹和字节码文件) |
mvn compile | 将核心代码部分进行编译 |
mvn test | 将测试部分和核心代码进行编译 |
mvn package | 进行编译后打包 |
mvn install | 编译后打包,并将包导入到本地仓库 |
2 Maven生命周期
默认生命周期
阶段 | 处理 | 描述 |
---|---|---|
验证 validate | 验证项目 | 验证项目是否正确且所有必须信息是可用的 |
编译 compile | 执行编译 | 源代码编译在此阶段完成 |
测试 Test | 测试 | 使用适当的单元测试框架(例如JUnit)运行测试。 |
包装 package | 打包 | 创建JAR/WAR包如在 pom.xml 中定义提及的包 |
检查 verify | 检查 | 对集成测试的结果进行检查,以保证质量达标 |
安装 install | 安装 | 安装打包的项目到本地仓库,以供其他项目使用 |
部署 deploy | 部署 | 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程 |
标准生命周期:
- clean:项目清理声明周期
- default默认生命周期
- site:站点声明周期
3 使用Maven构建项目
使用骨架的方式
可以选一个模板,例如quickstart
模板,构建好之后要自己新建一个resources
目录,并且右键指定为资源根目录。IDEA不会自动创建资源根目录
不使用骨架的方式
自带main下的resources目录,不自带test下的resources目录
构建web项目
选择webapp
模板,需要自己建立src/main/java
和src/test/java
,并指定为sources root目录
如果想要再指定除了webapp
之外另一个web sources目录,则需要手动到project structure - modules - web - web resource directories中添加
4 Maven改变环境
例如想指定Tomcat7和JDK8
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8888</port>
</configuration>
</plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<target>1.8</target>
<source>1.8</source>
<encoding>UTF-8</encoding>
</configuration>
</plugins>
</build>
Maven使用模板
可以在settings - live templates里面新建模板,指定使用的位置
Scope标签
当出现jar包冲突的时候,可以使用scope标签来指定jar包的作用域
<!--provided表示仅在写代码期间使用jar包-->
<scope>provided</scope>
<!--test表示仅在test周期使用jar包-->
<scope>test</scope>
除此之外还有其他的依赖范围
依赖范围 | 对于编译时 | 对于测试时 | 对于运行时 | 例子 |
---|---|---|---|---|
compile | Y | Y | Y | spring-core |
test | - | Y | - | Junit |
provided | Y | Y | - | servlet-api |
runtime | - | Y | Y | JDBC驱动 |
system | Y | Y | - | Maven仓库之外的 |