Maven的初步使用

安装

  1. 确保JAVA_HOME环境变量已正确设置
  2. 下载文件并解压
    下载地址:.cgi
unzip apache-maven-3.6.3-bin.zip
or
tar xzvf apache-maven-3.6.3-bin.tar.gz
  1. 添加Maven的bin目录值PATH环境变量
  2. 在控制台输入mvn -v,出现类似以下信息则表示安装成功
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: D:\software\apache-maven-3.6.3\bin\..
Java version: 13.0.1, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-13.0.1
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

运行

运行Maven的命令语法如下:

mvn [options] [<goal(s))>] [<phase(s))>]

所有的选项可以通过以下命令查看:

mvn -h

以下为使用Maven生命周期来构建一个项目的例子:

mvn package

项目构建的生命周期以及其各个阶段是有顺序的:

  • clean - pre-clean, clean, post-clean
  • default - validate, initialize, 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, pre-integration-test, integration-test, post-integration-test, verify, install, deploy
  • site - pre-site, site, post-site, site-deploy

以下命令可以构建一个新的项目,构建的内容包括输出所有的打包文件、文档、发布至资源库:

mvn clean deploy site-deploy

以上命令都是Maven工程的常用构建命令
在一些场景中,可能要调用一个自定义的特殊任务,可以使用Maven的插件的goal:

mvn archetype:generate
or
mvn checkstyle:check

Maven有很多插件,每个插件也包含很多goal

配置

  • 环境变量MAVEN_OPS
    这个变量为Maven启动JVM的参数,例如配置JVM的内存 -Xms256m -Xmx512m

  • setting.xml
    该文件的目录为 USER_HOME/.m2 ,这个配置文件包含了Maven项目相关的所有配置

  • .mvn目录
    该目录存在于项目的最顶层目录中,maven.config, jvm.config和extensions.xml包含了项目运行Maven时的特殊配置

  • .mvn/extensions.xml
    Maven 3.2.5之前的版本在使用一些额外的jar包时,可以手工放入${MAVEN_HOME}/lib/ext目录,但这样的处理需要每个开发人都手工放入,如果想要方便一些则需要修改Maven的安装包文件。另一种方法是通过命令选项引入额外的jar包 mvn -Dmaven.ext.class.path=extension.jar。但这两种方法都不够方便。

现在Maven 3.2.5的版本,可以通过定义${maven.projectBasedir}/.mvn/extensions.xml 来实现

<extensions xmlns=".0.0" xmlns:xsi=""xsi:schemaLocation=".0.0 .0.0.xsd"><extension><groupId/><artifactId/><version/></extension>
</extensions>
  • .mvn/maven.config
    Maven的选项是非常多的,在构建项目时使用不太方便,在 Maven 3.3.1+版本中可以通过${maven.projectBasedir}/.mvn/maven.config 为项目配置默认的构建选项
    例如:-T3 -U --fail-at-end,可以通过mavne.config配置后, 你可以只使用 mvn clean package 来替代 mvn -T3 -U --fail-at-end clean package,可以不必每次构建都输入命令选项。

  • .mvn/jvm.config
    Maven 3.3.1+版本用户可以通过通过${maven.projectBasedir}/.mvn/jvm.config 来配置JVM的启动参数,这意味着用户可以为每个项目配置不同的JVM参数,这个配置文件也会成为项目的一部分,这样就可以不再使用MAVEN_OPS环境变量了

 -Xmx2048m -Xms1024m -XX:MaxPermSize=512m -Djava.awt.headless=true