maven deploy:deploy-file 插件上传jar和pom文件到maven私服
通过此插件可以直接上传jar或pom文件到maven私服仓库(Nexus),也可以通过Nexus的管理页面进行相应的上传,但是通过Nexus的管理页面进行上传,不可以上传Snapshot版本的jar文件到Snapshot Repository,为了解决此问题,引入此插件。那么我们该如何做呢?
- 部署哪个文件?file
- 部署到哪?url
- 部署时权限怎么处理? repositoryId
- 部署的package 等信息?groupId artifactId version packaging
权限信息设置
权限信息在maven的配置文件中设置,如下:
<servers>
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
对应的pom中的信息
<distributionManagement>
<repository>
<id>releases</id>
<name>Internal Releases</name>
<url>http://xxxxx/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Internal Snapshots</name>
<url>http://xxxxx/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
上传jar文件到maven私服
mvn deploy:deploy-file -Dfile=a.jar -DartifactId=a -DgroupId=g -Dversion=1.0 -Dpackaging=jar -Durl=http://xxxxx/nexus/content/repositories/snapshots -DrepositoryId=snapshots
mvn deploy:deploy-file -Dfile=b.jar -DartifactId=b -DgroupId=g -Dversion=1.0 -Dpackaging=jar -Durl=http://nexus/content/repositories/snapshots -DrepositoryId=snapshots
#如果报错,找不到具体的插件,请指定插件版本即可
mvn deploy:deploy-file:2.7 -Dfile=a.jar -DartifactId=a -DgroupId=g -Dversion=1.0 -Dpackaging=jar -Durl=http://xxxxx/nexus/content/repositories/snapshots -DrepositoryId=snapshots
#推荐
mvn deploy:deploy-file -Dfile=task.pojo-0.0.1-SNAPSHOT.jar -DpomFile=task.pojo-0.0.1-SNAPSHOT.pom -Dpackaging=jar -Durl=http://nexus/content/repositories/snapshots -DrepositoryId=snapshots
指定pomFile与不指定的区别?
指定了就不会自动生成了,就按照pomfile 参数指定文件原样上传,否则,就会根据artifactId、groupId、version 来自动生成。
上传pom文件到maven私服
mvn deploy:deploy-file -Dfile=pom.xml -DpomFile=pom.xml -Dpackaging=pom -Durl=http://xxxxx/nexus/content/repositories/snapshots -DrepositoryId=snapshots
注意点
- 在执行命令时,windows 平台要以管理员身份运行命令行窗口
- 把要上传的文件复制到一个跟本地仓库目录不同的路径下
- file 可以是相对路径和绝对路径,能找到就可以
以上是本人在工作实际遇到的情况,希望对大家有用!