为什么部署到远程仓库的jar包不能传递依赖?

本文详细介绍了如何搭建Nexus服务器并将其用于Maven项目的远程仓库部署,包括配置pom.xml和settings.xml,以及使用命令行和IDE工具进行部署的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.搭建nexus服务器去官网下载 或 github: nexus-2.12.0-01-bundle

解压->运行

访问:http://localhost:8081/nexus/

2.在pom里面添加部署管理节点

    <!--需要部署到maven远程仓库就必须要配置部署管理-->
    <distributionManagement>
        <repository>
            <id>releases</id>
            <name>Release</name>
            <url>http://localhost:8081/nexus/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
            <!--id和setting中server镜像id对应即可-->
            <id>snapshots</id>
            <name>Snapshots</name>
            <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

在setting.xml配置server认证账号: 需要admin账号,默认密码就是admin123

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

3.部署到远程服务器

使用命令部署:

mvn install:install-file -DgroupId=com.ygpx.www -DartifactId=base64-utils -Dversion=1.0-SNAPSHOT -Dfile=base64-utils-1.0-SNAPSHOT.jar -Dpacckaging=jar -DrepositoryId=snapshots -Durl=http://localhost:8081/nexus/content/repositories/snapshots/

mvn deploy:deploy-file -DgroupId=com.ygpx.www -DartifactId=base64-utils -Dversion=1.0-SNAPSHOT -Dfile=base64-utils-1.0-SNAPSHOT.jar -Dpacckaging=jar -DrepositoryId=snapshots -Durl=http://localhost:8081/nexus/content/repositories/snapshots/

此时部署到服务器的pom只有pom的坐标,没有相关依赖的节点

虽然jar包下能找到以来的pom.xml,但是只能提供本jar下载依赖

使用工具部署(此处截图是idea的,eclipse也有类似工具)

此时部署上去的pom.xml就包含所有的依赖,就可以传递依赖给应用的pom工程了(当然依赖的生命周期,optional等因素也可能导致不能传递依赖)

甚至可以通过手动上传方式:

至于为什么使用命令传至远程仓库的pom不能传递依赖,目前还不清楚,估计是命令写的有些问题,希望知道的大神不吝赐教,感谢!

通过手动上传得到启发,是因为我只使用-Dfile指定了jar文件,没有制定pom文件,于是机制的加上-Dpom=../pom.xml,(因为我在target目录执行命令,所以pom.xml在上层目录) ,运行命令竟然成功了,非常开心,但是一看仓库pom.xml依然没有依赖项

没办法,百度看下是什么参数(我坚信我的方向是对的,只是命令错了,没有-Dpom这个参数),果然找到是-DpomFile=../pom.xml命令

正确的命令:

mvn deploy:deploy-file -DgroupId=com.ygpx.www -DartifactId=base64-utils -Dversion=1.0-SNAPSHOT -Dfile=base64-utils-1.0-SNAPSHOT.jar -Dpacckaging=jar -DrepositoryId=snapshots -Durl=http://localhost:8081/nexus/content/repositories/snapshots/ -DpomFile=../pom.xml

至此所有的疑惑都通过自己实践得到答案, 2019年11月12日01:37:05 ,愿不负韶光 努力向前,祝自己晚安(哇!还没洗澡o(╥﹏╥)o)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岁月玲珑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值