Maven推送本地jar包到远程仓库---nexus

本文详细介绍了如何使用Maven将项目打包并部署到远程仓库的过程。包括配置pom.xml和settings.xml,以及使用mvn clean deploy命令进行打包推送。区分了package、install和deploy命令的不同之处。

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

前几天在commons-tool工程下新建了几个日期相关的公共方法,本地测试没有问题,但到了小伙伴的电脑上,我新加的公共方法报错,原因是没有把commons-tool工程打包推上远程仓库。老大叫我推一下到远程仓库,啊?推远程仓库?怎么推?我先表面上答应着,回到自己位置上“面向百度编程”一顿操作。记录一下:

1.配置pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    .....

    <distributionManagement>
    <repository>
        <id>releases</id>
        <name>Releases</name>
        <url>http://xxx:8081/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
        <id>snapshots</id>
        <name>Snapshot</name>
        <url>http://xxx:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>
</project>

2.配置Maven的setting.xml

在servers节点下为每个仓库名配置用户名和密码---releases,snapshots。注意,id要和pom.xml配置的id一致

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

3.maven clean deploy打包并推送到远程仓库

mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。

mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。
mvn clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。

 由上面的分析可知主要区别如下,

package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库

参考大佬博客:maven命令package、install、deploy的区别

完~

 

 

### 配置IDEA推送本地Maven依赖至远程仓库 为了将本地Maven依赖推送远程仓库,在项目的`pom.xml`文件中需配置`<distributionManagement>`部分,指定用于部署构件的目标仓库地址和凭证[^3]。 #### 修改 `pom.xml` 在`pom.xml`内加入如下片段: ```xml <distributionManagement> <repository> <id>releases</id> <name>Nexus Release Repository</name> <url>http://your-nexus-server-ip:port/nexus/repository/maven-releases/</url> </repository> <snapshotRepository> <id>snapshots</id> <name>Nexus Snapshot Repository</name> <url>http://your-nexus-server-ip:port/nexus/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement> ``` 上述代码中的URL应替换为实际使用的Nexus服务器IP及端口。对于不同的私有库服务提供商(如Artifactory),只需调整相应的协议、主机名或路径即可适应不同环境下的需求。 #### 设置认证信息 接着要设置访问这些仓库所需的用户名密码等敏感数据。这一步骤应在用户的全局`settings.xml`里完成而不是放在项目级别的配置文件中以保障安全性。具体位置通常位于`${user.home}/.m2/settings.xml`下: ```xml <servers> <server> <id>releases</id> <username>your-username</username> <password>your-password</password> </server> <!-- 如果也有snapshots --> <server> <id>snapshots</id> <username>your-username</username> <password>your-password</password> </server> </servers> ``` 这里的`<id>`标签内的值应当与之前`pom.xml`里的对应项保持一致以便匹配成功[^1]。 #### 使用IDEA执行部署操作 当以上准备工作完成后,可以通过IntelliJ IDEA图形界面来触发构建过程并向远端存储库提交制品。选择右侧边栏上的Maven工具窗口找到对应的生命周期阶段命令——deploy按钮点击运行;或者直接打开终端输入`mvn clean deploy`指令启动整个流程。 如果遇到某些特殊场景下需要先安装特定版本的jar进入本地缓存再上传,则可以利用命令行辅助处理。例如针对单个jar文件的情况可采用下面的方式先行加载到`.m2/repository`目录结构之下然后再按照前述步骤继续推进[^4]: ```bash mvn install:install-file \ -Dfile=/path/to/local-jar/spire.pdf-8.11.8.jar \ -DpomFile=/path/to/pom/spire.pdf-8.11.8.pom \ -DgroupId=e-iceblue \ -DartifactId=spire.pdf \ -Dversion=8.11.8 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值