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中央仓库没有,这时可以选择下载后上传私服

总结

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

相关文章

  • 如何利用java控制鼠标操作一些重复的事情

    如何利用java控制鼠标操作一些重复的事情

    这篇文章主要给大家介绍了关于如何利用java控制鼠标操作一些重复的事情,主要利用的是Robot类,Robot可以模拟鼠标和键盘的输入,相当于Java版的按键精灵,需要的朋友可以参考下
    2021-12-12
  • Idea热加载插件JRebel激活以及使用教程

    Idea热加载插件JRebel激活以及使用教程

    JRebel是一款JVM插件,它使得Java代码修改后不用重启系统,立即生效,下面这篇文章主要给大家介绍了关于Idea热加载插件JRebel激活以及使用的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • Java内存屏障详解

    Java内存屏障详解

    文章主要介绍了内存屏障的必要性,以及在多核处理器中如何通过内存屏障来保证多线程程序的内存可见性和防止指令乱序执行,文章还详细解释了内存屏障的作用、原理以及常见处理器中的重排序类型
    2025-01-01
  • Spring Boot 2.4版本前后的分组配置变化及对多环境配置结构的影响(推荐)

    Spring Boot 2.4版本前后的分组配置变化及对多环境配置结构的影响(推荐)

    这篇文章主要介绍了Spring Boot 2.4版本前后的分组配置变化及对多环境配置结构的影响,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Java实现五子棋(附详细源码)

    Java实现五子棋(附详细源码)

    这篇文章主要为大家详细介绍了Java实现五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • Mybatis全面分页插件

    Mybatis全面分页插件

    这篇文章主要为大家详细介绍了Mybatis全面分页插件的使用方法,比较适用于在分页时候进行拦截,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • java的springboot实现将base64编码转换pdf

    java的springboot实现将base64编码转换pdf

    在Spring Boot中,将Base64编码的字符串转换为PDF文件并导出到客户端,通常涉及几个步骤:首先将Base64字符串解码为字节数组,然后使用这些字节数据来创建PDF文件,并最终通过HTTP响应将其发送给客户端
    2024-08-08
  • apache ant进行zip解压缩操作示例分享

    apache ant进行zip解压缩操作示例分享

    本文主要介绍了使用apache ant进行zip解压缩操作的方法,可以解决中文编码和首层父类无法创建问题,需要的朋友可以参考下
    2014-02-02
  • Java排序之Comparable和Comparator比较器详解

    Java排序之Comparable和Comparator比较器详解

    这篇文章主要介绍了Java排序之Comparable和Comparator比较器详解,Comparable<T>是内部比较器,Comparator<T>是外部比较器,最推荐使用Comparator<T>接口排序,Comparator提供静态方法很方便,推荐使用,需要的朋友可以参考下
    2024-01-01
  • SpringMVC中@Valid不起效BindingResult读取不到Error信息

    SpringMVC中@Valid不起效BindingResult读取不到Error信息

    在写SpringMVC项目时,由于要对表单数据进行校验,需要使用@Valid进行校验,但是在进行数据校验时,BindingResult对象无法拦截非法表单数据,result.hasErrors()无论怎么输入都会返回false,本文详细的介绍一下解决方法
    2021-09-09

最新评论