自己打包的jar上传到私用仓库供其他项目引用

在开发过程中,我们需要制作自己的jar供其他项目使用。这时我们可以把jar上传到nexus这类私有仓库,在其他项目使用时,通过私有仓库自动下载。那如何打包的发布到nexus仓库呢?以下对发布到私有仓库的简要记录。

一、配置

需要配置仓库地址和上传时操作的用户和密码。

  1. 项目配置
    在项目pom.xml配置,上传仓库地址,注意点,需要配置maven-releases,不能是maven-public, 否则会报nexus status code: 405, reason phrase: PUT (405)
<distributionManagement>
    <repository>
        <id>maven-public</id>
        <name>maven-public</name>
        <url>http://10.220.99.55:8081/repository/maven-releases/</url>
    </repository>
</distributionManagement>
  1. maven配置
    在settings.xml中配置,上传的用户名和口令
<servers>
  <server>
    <id>maven-public</id>
    <username>your username</username>
    <password>your password</password>
  </server>
</servers>

二、发布到远程仓库

  1. 命令方式
mvn deploy

如果你不想在 pom.xml 文件中配置,可以在 Maven 命令行使用 -DaltDeploymentRepository 参数指定仓库的 URL。

mvn deploy -DaltDeploymentRepository=your-repo-id::default::https://your.repository.url
  1. idea面板方式
    在右边maven面板的生命周期,中选择相应模块的devlop. (注这种方式需要在项目pom.xml配置好上传仓库地址)

三、碰到问题

  1. 自己生成的jar,在项目使用时,不能自动下载jar内引用的依赖,即依赖不会传递,原因是在pom.xml中,引用了本地jar依赖,导致自己生成的jar被使用时,不会下载依赖jar,如以下
<dependency>
    <groupId>org.rxtx</groupId>
    <artifactId>rxtxcomm</artifactId>
    <version>2.2pre2</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/RXTXcomm.jar</systemPath>
</dependency>
  1. deploy到远程仓库,成功发布后,在使用时无法从远程下载到本地仓库。
  • 项目的pom.xml,有使用到<parent>元素,引用了父pom, 这里需要把父pom也发布到远程仓库。
 <parent>
    <groupId>com.xxxx</groupId>
    <artifactId>xxx-xx</artifactId>
    <version>1.0.0</version>
</parent>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值