一: 查看依赖Jar 的关系
1.1//查看部分依赖树
mvn dependency:tree
1.2// 查看完整的依赖关系
mvn dependency:tree -Dverbose
1.3// 查看感兴趣的依赖部分
mvn dependency:tree -Dverbose -Dincludes=*guava*
注意:
includes 支持通配符的形式
1.4// 直接输出到当前项目下,然后在idea中打开,搜索要找的jar包名字即可.
mvn dependency:tree>temp/tree.txt
[ Mvn dependency:list,列出所有的依赖列表。
- Mvn dependency:analyze,分析主代码、测试代码编译的依赖。 ]
注意:
【“+-”符号表示该包后面还有其它依赖包,
“\-”表示该包后面不再依赖其它jar包】
二:单元测试
2.1 Maven 的构建过程暂时跳过测试环境(不运行测试案例)
Mvn package -DskipTests
2.2 Maven 的构建过程执行测试环境(运行测试案例)
Mvn test -Dtest
除了可以在 mvn 命令后面通过指定 skipTests 参数标明跳过测试外,还可以在 pom 中的 maven-surefire-plugin 插件配置中进行声明,代码如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
命令行 : Mvn package -Dmaven.test.skip=true
2.3:运行指定测试类
Mvn test -Dtest=TestDemo
Mvn test -Dtest=TestDemo1,TestDemo2
表示执行类名为 TestDemo1 和 TestDemo2 的所有测试类。注意,指定的多个测试类之间要用逗号隔开。
2.4 : ,用“∗”通配符指定执行符合规则的所有测试类, 表示执行类名为 Test 开头,Demo 结尾的所有测试类
Mvn test -Dtest=Test*Demo
2.5:排除不需要执行的用例, 不执行所有命名以 abc 结尾的测试类和以 Test 开头的测试类。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<excludes>
<exclude>**/*abc.java</exclude>
<exclude>**/Temp*.java</exclude>
</excludes>
</configuration>
</plugin>
三: profile命令
3.1: 查看当前激活的 profile
Mvn help:active-profiles
也可以使用如下命令查看所有的 profile。
Mvn help:all-profiles
3.2: 定要激活的 profile 的 id。如果一次要激活多个 profile,可以用逗号分开一起激活
mvn clean install -Pdev_env,test_evn
四 : Maven自定义插件
4.1
Mvn cn.com.mvn.plugin:Mvn.Hello.Plugin:name -Dname=zhangsan
五: Archetype插件 生成 Maven 项目骨架
5.1: 使用 maven-archetype-plugin 插件创建 Maven 项目
Mvn archetype:generate
Maven 接收到 Archetype 命令后,自动到 http://maven.apache.org/archetype/maven-archetype-plugin 下载最新的插件,然后运行 generate 目标,创建项目。
- archetype 是 maven-archetype-plugin 的简称;
- generate 是 maven-archetype-plugin 插件创建 Maven 项目的目标名称。
5.2: 指定创建一个java项目
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
mvn archetype:create
或者
mvn archetype:generate
固定写法
-DgroupId 组织标识(包名)
-DartifactId 项目名称
-DarchetypeArtifactId 指定 ArchetypeId,maven-archetype-quickstart,创建一个Java Project;maven-archetype-webapp,创建一个Web Project
-DinteractiveMode 是否使用交互模式
archetype是mvn内置的一个插件,create任务可以创建一个java项目骨架,DgroupId是软件包的名称,DartifactId是项目名,DarchetypeArtifactId是可用的mvn项目骨架,目前可以使用的骨架有:
- maven-archetype-archetype
- maven-archetype-j2ee-simple
- maven-archetype-mojo
- maven-archetype-portlet
- maven-archetype-profiles (currently under development)
- maven-archetype-quickstart
- maven-archetype-simple (currently under development)
- maven-archetype-site
- maven-archetype-site-simple
- maven-archetype-webapp
每一个骨架都会建相应的目录结构和一些通用文件,最常用的是 maven-archetype-quickstart 和 maven-archetype-webapp 骨架。 maven-archetype-quickstart骨架是用来创建一个Java Project,而maven-archetype-webapp骨架则是用来创建一个JavaWeb Project。