日常记录

Maven将第三方jar包deploy到nexus私服

2019-12-26  本文已影响0人  FinalException

Maven将第三方jar包deploy到nexus私服

最近接触了一个项目,需要用到jcaptcha验证码相关的依赖包

<!-- jcaptcha 验证码相关依赖-->
<dependency>
    <groupId>com.octo.captcha</groupId>
    <artifactId>jcaptcha-api</artifactId>
    <version>1.0</version>
</dependency>
    
<dependency>
    <groupId>com.octo.captcha</groupId>
    <artifactId>jcaptcha</artifactId>
    <version>2.0-alpha-1</version>
</dependency>

<dependency>
   <groupId>com.octo.captcha</groupId>
   <artifactId>jcaptcha-integration-simple-servlet</artifactId>
   <version>2.0-alpha-1</version>
</dependency>

前面两个依赖私服上都有,第三个依赖去官方的资源库下载到本地后准备deploy到公司私服,方便日后使用,奈何自己基础太差,一个简单的deploy踩了很多坑,特此记录一下,加深记忆。

下载好jar包后,首先install 到本地Maven仓库,命令如下:

mvn install:install-file -DgroupId=com.octo.captcha -DartifactId=jcaptcha-integration-simple-servlet -Dversion=2.0-alpha-1 -Dpackaging=jar -Dfile=jcaptcha-2.0-alpha-1.jar

install到本地后,项目依赖问题解决,剩下的就是将这个jar放到远程私服,这里有两种方式:

Nexus_upload.png
mvn org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy-file -DgeneratePom=false -DgroupId=com.octo.captcha -DartifactId=jcaptcha-integration-simple-servlet -Dversion=2.0-alpha-1 -Dpackaging=jar -Dfile=C:\Users\Administrator\Desktop\jcaptcha-integration-simple-servlet-2.0-alpha-1.jar -Durl=http://192.168.116.129:8081/repository/maven-releases/ -DrepositoryId=nexus-public

参数解释:

此处对应的deploy插件版本需要本地仓库里已经有相关的依赖包,如果没有,可以去官方的资源库(打开可能较慢;备用网址1备用网址2)下载后install到本地仓库

具体命令参数解释可参考官方

执行前的一些设置

Maven配置文件相关设置settings.xml

<server>
      <id>nexus-public</id>
      <username>admin</username>
      <password>admin</password>
</server>
<mirror>
      <id>nexus-public</id>
      <name>maven-releases</name>
      <url>http://192.168.116.129:8081/repository/maven-releases/</url>
      <mirrorOf>*</mirrorOf>
  </mirror>
Nexus_allow_redeploy.png

执行完效果如下:


Maven_deploy_success.png

附:写法不对,引发的一些错误和解决方案

mvn deploy:deploy-file -DgroupId=com.octo.captcha -DartifactId=jcaptcha-integration-simple-servlet -Dversion=2.0-alpha-1 -Dpackaging=jar -Dfile=jcaptcha-integration-simple-servlet-2.0-alpha-1.jar -Durl=http://192.168.116.129:8081/repository/maven-public/ -DrepositoryId=nexus-public

报错信息:


not_definition_plugin_version.png

解决方法,指定一下版本

mvn org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy-file -DgroupId=com.octo.captcha -DartifactId=jcaptcha-integration-simple-servlet -Dversion=2.0-alpha-1 -Dpackaging=jar -Dfile=C:\Users\Administrator\Desktop\jcaptcha-integration-simple-servlet-2.0-alpha-1.jar -Durl=http://192.168.116.129:8081/repository/maven-releases/ -DrepositoryId=nexus-public
mvn org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy-file -DgeneratePom=false -DgroupId=com.octo.captcha -DartifactId=jcaptcha-integration-simple-servlet -Dversion=2.0-alpha-1 -Dpackaging=jar -Dfile=jcaptcha-integration-simple-servlet-2.0-alpha-1.jar -Durl=http://192.168.116.129:8081/repository/maven-releases/ -DrepositoryId=nexus-public

因为是将第三方jardeploy到私服,所有直接引用本地库的包会报错

报错信息:


use_local_repository_error.png

解决方法,指定其他路径

mvn org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy-file -DgroupId=com.octo.captcha -DartifactId=jcaptcha-integration-simple-servlet -Dversion=2.0-alpha-1 -Dpackaging=jar -Dfile=C:\Users\Administrator\Desktop\jcaptcha-integration-simple-servlet-2.0-alpha-1.jar -Durl=http://192.168.116.129:8081/repository/maven-releases/ -DrepositoryId=nexus-public

有写的不对的地方,欢迎指正,共同进步!

一些其它链接:

上一篇下一篇

猜你喜欢

热点阅读