Maven发布项目到私服

          首先在项目的pom.xm文件中配置:

     <distributionManagement>
      <repository>
          <id>releases</id>
          <name>releases repo</name>
          <url>http://localhost:8081/nexus/content/repositories/releases/</url>
      </repository>
      <snapshotRepository>
        <id>snapshots</id>      
        <name>snapshots repo</name>
        <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
      </snapshotRepository>
  </distributionManagement>

通过右击pom.xml--->run as--->run configurations在goals中输入 clean deploy 发布项目,在maven控制台会报这样的一个错误: Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1][ERROR]    这是是因为我们还没有获得发布项目到私服上的权限,需要在settings.xml中的servers节点下配置:

       <server>
      <id>releases</id> //指向repository的id
      <username>deployment</username>
      <password>deployment123</password>
    </server>    
     <server>
      <id>snapshots</id>
      <username>deployment</username>
      <password>deployment123</password>
    </server>    

此时我们就可以看到snapshots仓库中发布的项目.


有时候一个公司可能同时开发几个不同的项目,这个时候我们希望将不同的项目发布到不同的仓库中,并且对于每一个项目只能有该项目的开发人员发布项目到指定的仓库中去,在这个时候我们就需要通过基于角色的权限管理来实现,例如有role1、role2两个不同的角色可以是实现不同的操作,我们通过将role1分配给用户user1、user2,将role2分配给用户user3,user4,这样不同的用户就具有不同的权限。

   

  选择hosted Repository



 再次选择hosted Repository,创建snapshot类型的仓库

 

接下来选择security下的privileges,然后点击add按钮选择Repository Target Privilege,来配置允许对仓库进行的操作






接下来创建角色:

 选择security下的roles ,同样单击add 选择nexus role

  

  

接下来创建用户并且分配角色:

选择security下的users ,同样单击add 选择nexus user




此时在项目的pom.xml中配置:

  <distributionManagement>
      <repository>
          <id>releases</id>
          <name>releases repo</name>
          <url>http://localhost:8081/nexus/content/repositories/myReleases/</url>
      </repository>
      <snapshotRepository>
        <id>snapshots</id>      
        <name>snapshots repo</name>
        <url>http://localhost:8081/nexus/content/repositories/mySnapshots/</url>
      </snapshotRepository>
  </distributionManagement>



在settings.xml中配置:

     <server>
      <id>releases</id>
      <username>nexus</username>
      <password>nexus123</password>
    </server>    
     <server>
      <id>snapshots</id>
      <username>nexus</username>
      <password>nexus123</password>
    </server>    
  </servers>

项目就可以发布成功。



 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要将 Maven 项目发布Maven 仓库,需要进行以下步骤: 1. 在 Maven 项目的 pom.xml 文件中添加发布仓库的信息,例如: ``` <distributionManagement> <repository> <id>my-repo</id> <name>My Repository</name> <url>http://myserver/repo/</url> </repository> </distributionManagement> ``` 2. 在 Maven 项目的根目录下执行以下命令,将项目打包成 jar 包: ``` mvn clean package ``` 3. 执行以下命令,将 jar 包发布到指定的仓库: ``` mvn deploy ``` 以上命令会将项目打包成 jar 包并上传到指定的仓库。如果没有指定仓库的用户名和密码,需要在 settings.xml 文件中添加: ``` <settings> <servers> <server> <id>my-repo</id> <username>my-username</username> <password>my-password</password> </server> </servers> </settings> ``` 其中,id 对应 distributionManagement 中的 repository id,username 和 password 对应仓库的登录信息。 注意,发布Maven 仓库需要具有相应的权限,如果是自己搭建的私有仓库,需要先配置好权限。 ### 回答2: Maven 是一个开源的项目管理工具,它可以帮助开发人员简化构建和管理 Java 项目的过程。Maven 支持将项目构建产物(例如:JAR 文件、WAR 文件等)发布到远程仓库中,以便其他项目可以方便地引用这些构建产物。 要将构建产物发布Maven 仓库,我们首先需要在项目Maven 配置文件 pom.xml 中指定远程仓库的地址和凭证信息。在 pom.xml 文件的 <distributionManagement> 节点中,我们需要配置 <repository> 节点的 <url> 子节点来指定仓库的地址,以及 <id> 子节点来指定仓库的唯一标识符。另外,我们还需要在 Maven 的 settings.xml 文件中配置仓库的凭证信息,以便能够正确地进行发布。 当配置完成后,我们可以使用 Maven 的 deploy 插件来执行构建产物的发布操作。我们可以通过命令行执行 "mvn deploy" 命令,或者在集成开发环境(IDE)中执行相应的 Maven 构建命令来触发发布操作。Maven 会将构建产物上传到远程仓库中,并且自动生成相应的元数据文件,用于标识发布的版本和构建产物的相关信息。 其他项目希望使用我们发布到仓库中的构建产物时,只需要在其相应的 pom.xml 文件中添加对该构建产物的依赖声明。根据配置的远程仓库地址和唯一标识符,Maven 会自动从远程仓库下载构建产物,并将其添加到当前项目的构建路径中。这样,其他项目就可以方便地引用和使用我们发布的构建产物了。 总之,使用 Maven 发布到仓库是一种方便的方式,能够让我们轻松地将构建产物分享给其他项目。通过正确配置远程仓库的地址和凭证信息,并使用 Maven发布命令,我们可以将构建产物成功地发布到仓库中,并让其他项目能够方便地引用和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值