将jar包发布到本地maven仓库
项目中在对接第三方服务时经常需要引用第三方的jar包依赖,比如腾讯的短信服务 这种场景还是非常多的,如何将第三方的jar包发布到本地,This is a question
现以发布腾讯的短信服务SDK为例子,发布到本地仓库
- 下载腾讯短信服务源代码
- 编译源代码,生成jar包 mvn package
- 发布该jar包到本地maven仓库 $ mvn install:install-file -Dfile=C:Users11851Downloadsqcloudsms_java-1.0.4qcloudsms_java-1.0.4 argetqcloudsms-1.0.4.jar -DgroupId=com.github.qcouldsms -DartifactId=qcloudsms -Dversion=1.0.4 -Dpackaging=jar
坑
之前发布了多次都失败了 查看报错信息发现The specified file C:Users11851Downloadsqcloudsms_java-1.0.4qcloudsms_java-1.0.4C:Users11851Downloadsqcloudsms_java-1.0.4qcloudsms_java-1.0.4targetqcloudsms-1.0.4.jar not exists 它是从相对当前命令行所在的路径再加上-Dfile路径查找jar包的,跟预期不太一样。所以上面那种写法将-Dfile写成绝对路径的方式行不通,应该是将-Dfile写成与jar包与当前命令行所在位置的相对路径。 我是将target中的jar包拷出来了 $ mvn install:install-file -Dfile=qcloudsms-1.0.4.jar -DgroupId=com.github.qcouldsms -DartifactId=qcloudsms -Dversion=1.0.4 -Dpackaging=jar 现在可以在项目中使用了
compile group: com.github.qcloudsms, name: qcloudsms, version: 1.0.4
小记: mvn install报错Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.5:sign 原因: 使用的版本是maven3.X,其执行maven-ant-plugin的行为和maven2.x有一定的不同,需要引入pluginManagement 解决方案: 解决办法是:在pom.xml中添加pluginManagement:
before:
<build>
<plugins>
<plugin></plugin>
...
<plugin></plugin>
</plugins>
</build>
after:
<build>
<pluginManagement>
<plugins>
<plugin></plugin>
...
<plugin></plugin>
</plugins>
</pluginManagement>
</build>
