Maven 如何发布 jar 包到 Nexus 私库
Nexus2可以通过管理界面来上传jar包到私库中,而最新的Nexus3却找不到了上传界面,只能通过以下方式来发布到私库。
发布第三方jar包
这种情况是maven远程仓库没有,本地有的第三方jar包,需要发布到私库。
mvn deploy:deploy-file
-DgroupId=com.example
-DartifactId=test
-Dversion=0.0.1
-Dpackaging=jar
-Dfile=E:\workspace\test\WebRoot\WEB-INF\lib\test-0.0.1.jar
-Durl=http://nexus.example.com:8081/repository/3rd-repo/
-DrepositoryId=Nexus
注意file的目录不能和本地仓库目录一致,不然会报错。
发布自有项目
公司自己的项目需要发布到Nexus私库提供给其他人依赖,这时可以用上面的方式先打成jar包再发布,也可以使用maven的eclipse插件。
添置maven pom配置:
<distributionManagement>
<repository>
<id>Nexus</id>
<name>Releases</name>
<url>http://nexus.example.com:8081/repository/maven-releases</url>
</repository>
<snapshotRepository>
<id>Nexus</id>
<name>Snapshot</name>
<url>http://nexus.example.com:8081/repository/maven-snapshots</url>
</snapshotRepository>
</distributionManagement>
再在eclipse项目上使用Run As..>Maven build..,在Goals里面输入deploy发布即可。
Maven settings配置
以上两点其中Nexus指的是maven server的id,大小写敏感,增加以下配置。
<servers>
<server><id>Nexus</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
关于Maven的使用及私库的搭建可以翻阅之前的Maven精选系列文章。
=========================================================================
使用命令上传第三方jar到nexus
示例:
上传一个处理word的jar包到nexus上。
jar包为jacob
我们先在nexus上搜索一下:下面是搜不出来的
步骤1:
把hosted资源库,也配置到maven的settting.xml文件中
添加下面:
<!--id自定义,但是在使用命令上传的时候会用到-->
<server> <id>myself_hosted</id> <username>admin</username> <password>admin123</password> </server>
到目前为止,我的settting.xml文件也就是下面这些东西
步骤2:
使用
以下命令
mvn deploy:deploy-file -DgroupId=sxd.jar -DartifactId=jacob -Dversion=1.18 -Dpackaging=jar -Dfile=G:\jar\jacob-1.18.jar -Durl=http://localhost:8081/repository/myself_hosted/ -DrepositoryId=myself_hosted
命令解释:
-DgroupId=sxd.jar 自定义
-DartifactId=jacob 自定义
-Dversion=1.18 自定义 三个自定义,构成pom.xml文件中的坐标
-Dpackaging=jar 上传的类型是jar类型
-Dfile=G:\jar\jacob-1.18.jar jar的本地磁盘位置
-Durl=http://localhost:8081/repository/myself_hosted/ hosted资源库的地址,下图中
-DrepositoryId=myself_hosted setting.xml文件中配置的ID
上传完成,再nexus中查看一下:
上传成功!!!
步骤3:
在项目的pom.xml文件中引入一下jar包
<dependency> <groupId>sxd.jar</groupId> <artifactId>jacob</artifactId> <version>1.18</version> <scope>provided</scope> </dependency>
保存pom.xml文件。
这下,发现maven下已经引入成功。并且已经将这个jar包放入本地maven仓库了。
===============================================
mvn deploy:deploy-file -DgroupId=sjht-e-iceblue -DartifactId=spire.xls.free -Dversion=2.2.0 -Dpackaging=jar -Dfile=C:\Users\panchanggui\Desktop\spire.xls.free-2.2.0.jar -Durl=http://203.195.xxx.xx:8081/nexus/content/repositories/thirdparty/ -DrepositoryId=sjht_nexus_hosted
mvn deploy:deploy-file -DgroupId=com.sdt.sccs -DartifactId=sdt-cryptohl -Dversion=1.4.1.0 -Dpackaging=jar -Dfile=D:\workspace\my\ideaProjects\fdt-demo\src\main\resources\lib\sdt-cryptohl-1.4.1.0.jar -Durl=http://{{ip}}:13237/repository/maven-releases/ -DrepositoryId=maven-releases