maven常用命令 - pingdongyi/blog-2 GitHub Wiki
该命令会打印出所有的java系统属性和环境变量,这些信息对我们日常的编程工作很有帮助
查看当前项目的已解析依赖
查看当前项目的依赖树
分析当前项目依赖信息,哪些是项目中未使用但显式声明的依赖,哪些是项目中使用到但没有显式声明的依赖
尝试下载在pom.xml中依赖的文件的源代码
尝试下载对应的javadocs
查看某个插件的详细信息
运行指定的测试用例,test参数的值必须匹配一个或者多个测试类,如果找不到任何匹配的测试类,就会报错并导致构建失败
mvn test -Dtest=aaaTest
mvn test -Dtest=aaa*Test
mvn test -Dtest=aaaTest,bbbTest
#即使没有任何测试用例也不要报错
mvn test -Dtest -DfailIfNoTests = false
单独打包源码或测试源码命令,需要安装打包源码插件
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
usage: mvn [options] [<goal(s)>] [<phase(s)>]
-am, --also-make 同时构建所列模块的依赖模块
#同时构建所列模块的依赖模块
mvn clean install -pl module1 -am
-amd, -also-make-dependents同时构建依赖于所列模块的模块
#同时构建依赖于module1的模块
mvn clean install -pl module1 -amd
-pl, --projects 构建指定的模块,模块间用逗号分隔
#构建指定某几个模块
mvn clean install -pl module1,module2
-rf -resume-from 从指定的模块回复反应堆
#在完整的瓜堆构建顺序基础上指定从哪个模块开始构建,如从module1开始构建
mvn clean install -rf module1
<properties>
<spring-version>4.3.2</spring-version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring-version}</version>
</dependency>
...
</dependencies>
通过元素用户可以自定义一个或多个maven属性,然后在pom的其他地方使用${属性名}的方式引用该属性,maven有6类属性:
-
内置属性
主要有两个常用的内置属性,${basedir}表示项目根目录,即包含pom.xml文件的目录;${version}表示项目版本
-
pom属性
用户可以使用该类属性引用pom文件中对应元素的值。常用的pom属性包括:
- ${project.build.sourceDirectory}:项目的主源码目录,默认为src/main/java
- ${project.build.testSourceDirectory}:项目的测试源码目录,默认为src/test/java
- ${project.build.directory}:项目构建输出目录,默认为target/
- ${project.outputDirectory}:项目主代码编译输出目录,默认为target/classes/
- ${project.testOutputDirectory}:项目测试代码编译输出目录,默认主target/test-classes/
- ${project.groupId}:项目的groupId
- ${project.artifactId}:项目的artifactId
- ${project.version}:项目的version,与${version}等价
- ${project.build.finalName}:项目打包输出文件的名称,默认为${project.artifactId}-${project.version}
这些属性都对应了一个pom元素,它们中的一些属性的默认值都在超级pom中定义的
-
自定义属性
用户可以在pom的元素下自定义maven属性
-
settings属性
与pom属性同理,用户使用以settings.开头的属性引用settings.xml文件中的xml元素的值,如${settings.localRepository}指向用户本地仓库的地址
-
java系统属性
据肝java系统属性都可以使用maven改改引用,如${user.home}指向了用户目录,可以使用mvn help:system查看所有的java系统属性
-
环境变量属性
所有环境变量都可以使用以env.开头的maven属性引用,如${env.JAVA_HOME}指定了java_home环境变量的值,可以使用mvn help:system查看所有的环境变量