项目约定配置
Maven 遵循约定优于配置的原则,下表是 Maven 提倡的标准目录结构:
目录 | 目的 |
---|---|
$(basedir) | 存放 pom.xml 和所有的子目录 |
$(basedir)/src/main/java | 项目的 Java 源代码 |
$(basedir)/src/main/resources | 项目的资源,例如 property 文件,springmvc.xml |
$(basedir)/src/test/java | 项目的测试类,例如 Junit 代码 |
$(basedir)/src/test/resources | 测试用的资源 |
$(basedir)/src/main/webapp/WEB-INF | web 项目的信息,比如存放 web.xml 、本地图片、jsp试图页面 |
$(basedir)/target | 打包输出目录 |
$(basedir)/target/test-classes | 测试编译输出目录 |
Test.java | Maven 只会自动运行符合该命名规则的测试类 |
~/.m2/repository | Maven 默认的本地仓库目录位置 |
Maven 环境配置
Maven 是一个基于 Java 的工具,Maven 3.3 要求 JDK 1.7 或以上,Maven 3.2 要求 JDK 1.6 或以上,Maven 3.0/3.1 要求 JDK 1.5 或以上。
Maven 安装步骤:
- 安装 Java,并配置环境变量
- 安装 Maven
# wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
# tar -xvf apache-maven-3.3.9-bin.tar.gz
# sudo mv -f apache-maven-3.3.9 /usr/local/
- 配置环境变量
# sudo vim /etc/profile
...
export MAVEN_HOME=/usr/local/apache-maven-3.3.9
export PATH=${PATH}:${MAVEN_HOME}/bin
- 查看 Maven 版本信息
# mvn -v
Maven POM
pom.xml 文件用于描述项目如何构建,声明项目依赖,项目版本与开发者等信息。
pom.xml 文件必须包含 project 根标签和 groupId, artifactId, version 等子标签。
节点 | 描述 |
---|---|
project | 工程的根标签 |
modelVersion | 模型版本需要设置为 4.0 |
groupId | 公司或组织的标识,通常在一个组织或项目中是唯一的 |
artifactId | 工程的标识,通常是工程的名字 |
version | 工程的版本号 |
parent | 父项目,当项目中没有规定某个元素的值,默认使用父项目对应值 |
packaging | 项目产生的构件类型,例如jar、war、ear、pom |
dependencies | 项目引入插件所需要的额外依赖 |
modules | 模块/子项目,被构建成项目的一部分 |
properties | 项目属性,可在 POM 文件其他位置被引用 |
build | 构建项目需要的信息 |
reporting | 该元素包括使用报表插件产生报表的规范 |
POM 详细语法参考:http://maven.apache.org/pom.html
Maven 构建生命周期
一个典型的 Maven 构建生命周期如下图所示:
Maven构建生命周期.png
阶段 | 描述 |
---|---|
验证 validate | 验证项目是否正确且所有必须信息是可用的 |
编译 compile | 源代码编译 |
测试 test | 单元测试 |
打包 package | 创建 JAR/WAR包 |
检查 verify | 对集成测试的结果进行检查 |
安装 install | 安装打包的项目到本地仓库 |
部署 deploy | 拷贝最终的工程包到远程仓库中 |
Maven 仓库
项目中所依赖的第三方库的存放位置,称为 Maven 仓库。Maven仓库有三种类型:
- 本地 本机上的 Maven 仓库,路径为~/.m2/respository/
- 中央 Maven 社区提供的仓库,其中包含了大量常用的库
- 远程 开发人员自己定制仓库,配置在 POM 文件中的 repository 标签
优先级:本地仓库 > 中央仓库 > 远程仓库
Maven 常用命令
- 创建普通 Java 项目
mvn archetype:create \
-DgroupId=packageName \
-DartifactId=projectName
- 创建 Web 项目
mvn archetype:create \
-DgroupId=packageName \
-DartifactId=webappName \
-DarchetypeArtifactId=maven-archetype-webapp
- 反向生产 Maven 项目的骨架
mvn archetype:generate
- 编译源代码
mvn test
- 编译测试代码
mvn test-compile
- 运行测试
mvn test
- 产生 site
mvn site
- 打包
mvn package
- 在本地仓库中安装 jar
mvn install <jar path> <destination path>
- 清除项目
mvn clean
详细的 Maven 命令可以通过 mvn --help 查看
网友评论