在SOA服务成为标准配置的今天,我们经常会遇到需要将jar上传到公司Nexus私服来满足其他服务调用的需求。
常用命令如下:mvn deploy:deploy-file -DgroupId=<group-id> \
-DartifactId=<artifact-id> \
-Dversion=<version> \
-Dpackaging=<一般是jar> \
-Dfile=<相对路径和绝对路径都可> \
-Durl=<公司仓库地址> \
-DrepositoryId=<一般是snapshots或者releases,根据.m2/settings.xml文件servers配置来> \
-DpomFile=<pom.xml> \
-Dsources=<源码file地址,可不填>
上面这个命令会生成jar并且上传到Nexus 私服中。
-DpomFile=pom.xml
这个参数指定pom文件为我们自己的pom文件,方便当其他人引入我们的jar的时候把我们的jar包的依赖都一起引入。但是如果我们不指定的话,默认会生成一个空pom.xml,没有依赖关系,这个时候如果别人引用了我们的 jar 包,就会抛出 NoClassDefFoundError 错误,因为编译时没有问题,但运行时却找不到 class 文件。
maven deploy plugin pom 配置
下面提供了maven deploy plugin的xml 配置,方面在snapshots阶段快速部署。
<plugin> |
maven deploy source jar(maven上传源代码到Nexus私服)
因为maven部署插件的sources
配置是文件,因此我们需要在部署jar之前将 source.jar
打包出来,所以将jar-no-fork绑定在verify流程节点上。
<build> |
参考文档: