Maven 学习笔记

项目约定配置

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 安装步骤:

  1. 安装 Java,并配置环境变量
  2. 安装 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/
  1. 配置环境变量
# sudo vim /etc/profile
...
export MAVEN_HOME=/usr/local/apache-maven-3.3.9
export PATH=${PATH}:${MAVEN_HOME}/bin
  1. 查看 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 常用命令

  1. 创建普通 Java 项目
mvn archetype:create \
    -DgroupId=packageName \
    -DartifactId=projectName
  1. 创建 Web 项目
mvn archetype:create \
    -DgroupId=packageName \
    -DartifactId=webappName \
    -DarchetypeArtifactId=maven-archetype-webapp
  1. 反向生产 Maven 项目的骨架
mvn archetype:generate
  1. 编译源代码
mvn test
  1. 编译测试代码
mvn test-compile
  1. 运行测试
mvn test
  1. 产生 site
mvn site
  1. 打包
mvn package
  1. 在本地仓库中安装 jar
mvn install  
  1. 清除项目
mvn clean

详细的 Maven 命令可以通过 mvn --help 查看

你可能感兴趣的:(Maven 学习笔记)