一般公司中都会使用自建maven的nexus仓库。
但是管理员又不希望在所有的pom文件中存储maven仓库发布的地址。
这时可以使用下面的命令,通过参数指定要发布的地址
# 发布到release mvn clean deploy -DaltDeploymentRepository=nexus(这是setting.xml中的server的id)::default(这个是固定值)::http://xxx.com.cn/repository/maven-releases(这个是maven的仓库地址) -Drelease=true # 发布到SNAPSHOT mvn clean deploy -DaltDeploymentRepository=nexus(这是setting.xml中的server的id)::default(这个是固定值)::http://xxx.com.cn/repository/maven-snapshots(这个是maven的仓库地址) -Drelease=false
maven命令行操作,一般有下面的格式
mvn clean package -P prod -Dxxxx(这是环境变量)=0 -Dmaven.test.skip=true
查询是否某个包存在
# mvn查询某个 # mvn -q dependency:get -Dartifact=<groupId>:<artifactId>:<version> -DrepoUrl=<mavenRepositoryUrl> # 如果 JAR 包存在于 Maven 仓库中,命令将正常执行并返回退出码为 0。如果 JAR 包不存在,命令将返回非零的退出码。 mvn -q dependency:get -Dartifact=ch.qos.logback:logback-access:2.2.3 -DrepoUrl=https://nexus.xxx.com echo $?