到项目路径下(pom.xml同级路径)
1、maven命令常用参数
-D 传入属性参数
-P 使用pom中指定的配置
-e 显示maven运行出错的信息
-o 离线执行命令,即不去远程仓库更新包
-X 显示maven允许的debug信息
-U 强制去远程参考更新snapshot包
例如 mvn install -Dmaven.test.skip=true -Poracle
其他参数可以通过mvn help 获取
Help 插件有9个goals,分别如下:
- active-profiles
- all-profiles
- describe
- effective-pom
- effective-settings
- evaluate
- expressions
- system
- help
-
mvn help:active-profiles
列出当前正在构建的配置文件列表
可选参数output,将当前正在构建的配置文件列表输出到指定文件中,支持相对路径
mvn help:active-profiles -Doutput=d:\temp.txt
-
mvn help:all-profiles
列出当前项目下的可用配置文件
可选参数output,将可用的配置文件列表输出到指定文件中,支持相对路径
mvn help:all-profiles -Doutput=d:\a.txt
-
mvn help:describe
描述插件和/或Mojo(Maven普通旧Java对象)的属性:
-
mvn help:effective-pom
将当前项目正在构建的pom中的有效内容打印出来。请注意,这并不是要打印出你当前项目中所写的pom的内容,而是会把所有对当前项目生效的pom内容合并成一个xml格式的文档,然后输出。这可能包括在Maven安装目录中conf子目录下名为setting.xml中的内容,~/.m2目录下名为setting.xml文件中的内容,其他引入或继承的pom文件的内容.
可选参数 output,把有效的pom配置输出到指定文件,支持相对路径
mvn help:effective-pom -Doutput=d:\effectivePom.xml
-
mvn help:effective-settings
将用户文件与全局文件中的settings信息合并后以xml格式显示出来。合并过程中以用户文件内容优先。其实就是maven实际用于构建的设置信息:
可选参数output,将有效的settings配置输出到指定文件中,支持相对路径
可选参数showPasswords,当此参数为true时,所有密码都会显示出来
mvn help:effective-settings -Doutput=d:\temp.xml -DshowPasswords=true
-
mvn help:evaluate
计算用户在交互模式下给出的maven表达式
-
mvn help:expressions
列出maven支持的表达式
-
mvn help:system
列出当前所在平台的系统属性和环境变量
可选参数output,将当前所在平台的系统属性和环境变量输出到指定文件中,支持相对路径
-
mvn help:help
显示maven-help-plugin插件的帮助信息
可选参数detail 指明是否输出详细信息,默认为false
可选参数goal 指定“目标”,如果给了这个参数,则输出的是给定目标的帮助信息,而不是整个插件的帮助信息。
可选参数identSize 每个缩进的空格数,默认为:2
可选参数lineLength 每行最多显示的字符数,超过则换行,默认为:80
2、命令行指定特定settings.xml文件
如:执行install命令时,指定使用的settings.xml文件
mvn install --settings c:\user\settings.xml
如:执行clean package命令时,指定使用的settings.xml文件
mvn clean package --settings F:\Maven\settings.xml -Dmaven.test.skip=true
3、查看当前工程生效settings.xml文件
mvn help:effective-settings
4、查看当前工程依赖树
mvn dependency:tree
5、分析依賴冲突,多余的依赖
mvn dependency:analyze
Used undeclared dependencies found
意思是,工程代码中用到了该依赖,但工程中并没有显示声明该依赖,即通过依赖传递引入的依赖
Unused declared dependencies found
意思是,工程中显示的声明了该依赖,但工程代码中并没有用到,即多余的依赖
此处的工程中代码没有用到,指的是在main/java和test里没有用到该依赖,但并不是意味着工程真的没有用到这些依赖,
有可能配置文件中引用或者其他扩展点自动加载这些包,这种情况使用的依赖,maven是分析不出来的。
6、maven跳过测试
-Dmaven.test.skip=true 既不编译测试类,也不执行测试代码
-DskipTests 编译测试类生成相应的class文件至target/test-classes下,但不执行测试代码