Maven配置中repositories、distributionManagement、pluginRepositories用法及将已有jar包部署到私服

 更新时间:2025年03月22日 09:09:26   作者:Archie_java  
这篇文章主要介绍了Maven配置中repositories、distributionManagement、pluginRepositories用法及将已有jar包部署到私服,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

1. repositorie 结构说明

repositorie 表示下载项目依赖库文件的maven仓库地址

<repositories>
  <repository>
      <!-- 仓库ID -->
      <id>nexus</id>
      <!-- 仓库名称 -->
      <name>Nexus</name>
      <!-- 仓库地址 -->
      <url>http://192.168.1.x:xxxx/repository/maven-public/</url>
      <!-- 仓库中版本为releases的构件 -->
      <releases>
          <!-- 是否支持更新-->
          <enabled>true</enabled>
          <!-- 构件更新的策略,可选值有daily, always, never, interval:X(其中的X是一个数字,表示间隔的时间,单位min),默认为daily-->
          <updatePolicy>always</updatePolicy>  
          <!-- 校验码异常的策略,可选值有ignore, fail, warn -->
          <checksumPolicy>warn</checksumPolicy>  
      </releases>
       <!-- 仓库版本为snapshots的构件-->
      <snapshots>
           <!-- 是否支持更新-->
          <enabled>true</enabled>  
          <!-- 同上 -->
          <updatePolicy>always</updatePolicy>  
          <!-- 同上 -->
          <checksumPolicy>warn</checksumPolicy>  
      </snapshots>
  </repository>
</repositories>

如果是公司本地仓库,而且需要认证才能访问,需要在本地maven的conf\settings.xml文件中添加如下配置内容

<servers>  
    <server>  
        <id>nexus</id>  
        <username>admin</username>  
        <password>admin</password>  
     </server> 
</servers>

2. distributionManagement 结构说明

distributionManagement 表示项目打包成库文件后要上传到仓库地址

<distributionManagement>
    <!-- 正式版本 -->
    <repository>
        <uniqueVersion>false</uniqueVersion>
         <!-- nexus服务器中用户名(settings.xml中<server>的id)-->
        <id>releases</id>
         <!-- 自定义名称 -->
        <name>Releases Repository</name>
        <url>http://192.168.1.x:xxxx/repository/maven-releases/</url>
        <layout>default</layout>
    </repository>
    <!-- 快照 -->
    <snapshotRepository>
        <uniqueVersion>true</uniqueVersion>
        <id>snapshots</id>
        <name>Snapshots Repository</name>
        <url>http://192.168.1.x:xxxx/repository/maven-snapshots/</url>
        <layout>legacy</layout>
    </snapshotRepository>
</distributionManagement>

如果是公司本地仓库,而且需要认证才能访问,也需要在本地maven的conf\settings.xml文件中添加如下配置内容(< repository >节点下的< id >对应setting.xml文件中的server的id)

<servers>  
    <server>  
        <id>releases</id>  
        <username>admin</username>  
        <password>admin</password>  
     </server>  
    <server>  
        <id>snapshots</id>  
        <username>admin</username>  
        <password>admin</password>  
    </server>  
</servers>

3. pluginRepositories 结构说明

pluginRepositories 表示插件的下载仓库地址,字段和用法与repositories中的repository基本一致

<pluginRepositories>
  <pluginRepository>
      <id>nexus</id>
      <name>Nexus</name>
      <url>http://192.168.1.x:xxxx/repository/maven-public/</url>
      <releases>
          <enabled>true</enabled>
          <updatePolicy>always</updatePolicy>  
          <checksumPolicy>warn</checksumPolicy>  
      </releases>
      <snapshots>
          <enabled>true</enabled>  
          <updatePolicy>always</updatePolicy>  
          <checksumPolicy>warn</checksumPolicy>  
      </snapshots>
  </pluginRepository>
</pluginRepositories>

4. 常用的maven仓库命令

上传本地仓库

mvn install:install-file
-DgroupId=com.xxx
-DartifactId=xxx-sdk
-Dversion=1.0.0
-Dpackaging=jar
-Dfile=xxx-xxx-sdk-1.0.0.jar

参数说明

  • mvn install:install-file
  • -DgroupId=上面的groupId
  • -DartifactId=上面的artifactId
  • -Dversion=上面的version
  • -Dpackaging=jar
  • -Dfile=jar包的位置

上传远程仓库

mvn -X deploy:deploy-file
 -Dmaven.test.skip=true
 -DgroupId=XXX.XXX
 -DartifactId=XXX
 -Dversion=XXX 
 -Dpackaging=jar 
 -Dfile=XXX.jar  
 -DpomFile=pom.xml 
 -Durl=http://用户名:密码@远程私服仓库地址

将已有jar包部署到私服

一、环境准备

  • 本地电脑已安装maven
  • 私服已经搭建好
  • 私服对应仓库和账号权限开启,允许 deploy jar 包上去

二、meven私服连接配置

需要在./conf/setting.xml中配置需要远程上传库的地址,用户以及密码(如果需要认证):

<servers>
    <server>
      <id>maven-releases</id>
      <username>zm</username>
      <password>123456</password>
    </server>
</servers>

三、使用deploy命令上传

mvn deploy:deploy-file -Dmaven.test.skip=true -Dfile=E:\Work\MyWorkspace\idea\office-
pdf-util\src\main\resources\libs\aspose-words-16.8.0-jdk16.jar -DgroupId=aspose-words -
DartifactId=aspose-words -Dversion=16.8.0 -Dpackaging=jar -DrepositoryId=maven-releases 
-Durl=http://192.168.0.167:8081/repository/maven-releases

如果要在命令行临时指定setting.xml

mvn deploy:deploy-file --settings C:\Users\Liu\.m2\settings-zhiyi.xml -
Dmaven.test.skip=true -Dfile=E:\Work\MyWorkspace\idea\office-pdf-
util\src\main\resources\libs\aspose-words-16.8.0-jdk16.jar -DgroupId=aspose-words -
DartifactId=aspose-words -Dversion=16.8.0 -Dpackaging=jar -DrepositoryId=maven-releases 
-Durl=http://192.168.0.167:8081/repository/maven-releases

各参数代表含义为:

-Dmaven.test.skip=true                              //跳过编译、测试
-Dfile=D:\work\thirdjar\aspose-words-16.8.0.jar     //jar包文件地址,绝对路径
-DgroupId=pri.roy.mvn.test                          //gruopId--pom坐标,自定义
-DartifactId=mvn-api                                //artifactId--pom坐标,自定义
-Dversion                                           //版本号,自定义
-Dpackaging                                         //打包方式
-DrepositoryId                                      //远程库ID
-Durl                                               //远程库地址

四、结果截图如下

该操作常用来解决的问题

  • 项目依赖第三方jar包,但maven中央仓库没有,这时可以选择下载后上传私服

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring中获取Bean对象的三种注入方式与两种注入方法详解

    Spring中获取Bean对象的三种注入方式与两种注入方法详解

    平常的Java开发中程序员在某个类中需要依赖其它类的方法,下面这篇文章主要给大家介绍了关于Spring中获取Bean对象的三种注入方式与两种注入方法的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • Java使用fastjson对String、JSONObject、JSONArray相互转换

    Java使用fastjson对String、JSONObject、JSONArray相互转换

    这篇文章主要介绍了Java使用fastjson对String、JSONObject、JSONArray相互转换,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 一分钟入门Java Spring Boot彻底解决SSM配置问题

    一分钟入门Java Spring Boot彻底解决SSM配置问题

    Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域成为领导者
    2021-10-10
  • JAVA实现JSON后端向前端传递数据

    JAVA实现JSON后端向前端传递数据

    本篇文章主要介绍了JAVA实现JSON后端向前端传递数据,这里整理了详细的代码,具有一定的参考价值,有需要的小伙伴可以参考下。
    2017-03-03
  • JAVA不使用线程池来处理的异步的方法详解

    JAVA不使用线程池来处理的异步的方法详解

    这篇文章主要介绍了JAVA不使用线程池来处理的异步的方法,在这个示例中,asyncTask方法创建了一个新的线程来执行异步任务,这个新线程会立即开始执行,而主线程则会继续执行后续的代码,感兴趣的朋友跟随小编一起看看吧
    2024-05-05
  • Spring Cloud Alibaba实现服务的无损下线功能(案例讲解)

    Spring Cloud Alibaba实现服务的无损下线功能(案例讲解)

    这篇文章主要介绍了Spring Cloud Alibaba实现服务的无损下线功能 ,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • 如何把JAR发布到maven中央仓库的几种方法

    如何把JAR发布到maven中央仓库的几种方法

    这篇文章主要介绍了如何把JAR发布到maven中央仓库的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 解析和解决org.springframework.beans.factory.NoSuchBeanDefinitionException异常问题

    解析和解决org.springframework.beans.factory.NoSuchBeanDefinitionE

    这篇文章主要介绍了解析和解决org.springframework.beans.factory.NoSuchBeanDefinitionException异常问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • java+mysql实现登录和注册功能

    java+mysql实现登录和注册功能

    这篇文章主要为大家详细介绍了java+mysql实现登录和注册功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04

最新评论