maven常用命令及参数
常用参数
mvn deploy
参数:
- -Dmaven.test.skip=true
跳过单元测试,单元测试会走springboot启动工程
mvn deploy -Dmaven.test.skip=true
- -pl:指定moudle单独进行deploy
只需要部署其他工程依赖的模块即可,不需要将整个工程deploy。
mvn deploy -pl assets-db
- -N:不构建子工程,只上传父目录pom
mvn deploy -N
mvn install
参数:
- -Dmaven.repo.local 指定install目录
一般本地有多个仓库时会用到,如果不加该参数,默认位置为/Users/{userName}/.m2,如果在项目中修改了repository位置,会导致引用不到。
mvn install -Dmaven.repo.local=/.../repository
- --settings 指定配置文件
当我们打包环境比较复杂的时候,不同的工程要连接不同的私服库的时候,就需要在执行mvn命令的时候指定setting.xml文件,此时mvn会按照指定配置文件里配置的nexus地址和用户名进行取包。一般会跟-Dmaven.repo.local同时使用。
mvn install --settings /.../apache-maven-3.8.3/conf/settings.xml
其他
参数:
- -e 打印详细报错信息
当deploy或者install时,加上该参数会打印出更详细的报错信息,方便排查问题。
mvn deploy -e
- -X 打印debug信息
mvn deploy -X
问题
背景:需要将相关的jar包手动上传至maven私服。
报错信息:上传失败,报401权限错误。
解决:在deploy时加上-X参数,会打印具体的信息,包括上传的file(jar包)路径,项目的groupId、artifactId、version版本、repositoryId、目标仓库地址url。
注意:repositoryId必须跟pom文件中配置的
总结:
以上参数一般都是组合使用,举几个例子可以直接选择性CV使用
eg:
- 上传指定jar包到指定仓库
mvn deploy:deploy-file
-Dmaven.test.skip=true
-Dfile=/...路径地址/1.0.3-SNAPSHOT/xxx.jar
-DgroupId=xxx.xxx.xxx
-DartifactId=xxxx
-Dversion=1.0.3-SNAPSHOT
-Dpackaging=jar
-DrepositoryId=xxxxx
-Durl=https://.../repository/xxx-SnapShot/
- 根据指定配置文件将指定moudle install到指定本地位置
mvn clean install
-Dmaven.test.skip=true
--settings /...路径地址/settings.xml
-Dmaven.repo.local=/.../repository/...
-pl assets-base
-e
-U // 强制从仓库更新,忽略缓存