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文件中配置的标签下的id一致才行,而不是settings文件中的配置。

总结:

以上参数一般都是组合使用,举几个例子可以直接选择性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 // 强制从仓库更新,忽略缓存
posted @ 2022-02-13 18:45  TobyHolmes  阅读(3547)  评论(0编辑  收藏  举报