maven学习笔记(二) repositories、distributionManagement、pluginRepositories中的repository

目录

repositories中的repository

distributionManagement中的repository

pluginRepositories中的repository

遇到的400及401问题

401

400


repositories中的repository

repositories中的repository表示从什么库地址可以下载项目依赖的库文件,比如:

<repositories>
        <repository>
            <id>crm-online</id>
            <url>http://maven.xxx/nexus/content/repositories/crm-online</url>
        </repository>
        <repository>
            <id>artifactory</id>
            <url>http://mvn.ziroom.com/public</url>
        </repository>
        <repository>
            <id>crm-snapshot</id>
            <url>http://maven.xxx/nexus/content/repositories/crm-t</url>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </snapshots>
        </repository>
    </repositories>

其中repository中的字段说明如下:

id,库的ID
name,库的名称
url,库的URL
layout,在Maven 2/3中都是default,只有在Maven 1.x中才是legacy
releases,库中版本为releases的构件
snapshots,库中版本为snapshots的构件

  • enabled,是否支持更新
  • updatePolicy,构件更新的策略,可选值有daily, always, never, interval:X(其中的X是一个数字,表示间隔的时间,单位min),默认为daily
  • checksumPolicy,校验码异常的策略,可选值有ignore, fail, warn
  • layout,在Maven 2/3中都是default,只有在Maven 1.x中才是legacy

如果需要认证才能访问,则需要在settings.xml文件中添加如下内容,并且server中的id字段的值要与repository中id字段的值相同

<servers>  
    <server>  
        <id>crm-online</id>  
        <username>admin</username>  
        <password>admin123</password>  
     </server> 
</servers>

distributionManagement中的repository

表示的是项目打包成库文件后要上传到什么库地址,比如

<distributionManagement>
        <repository>
            <id>crm-online</id>
            <url>http://maven.xxx/nexus/content/repositories/crm-online</url>
        </repository>
        <snapshotRepository>
            <id>crm-snapshot</id>
            <url>http://maven.xxx/nexus/content/repositories/crm-t</url>
        </snapshotRepository>
</distributionManagement>

与repositories中的repository不同的是,distributionManagement中分为repository和snapshotRepository,但里面的字段大致与repositories中的repository内的相同。同样,如果访问需要认证的话,也需要在settings.xml文件中设置:

<servers>  
    <server>  
        <id>crm-online</id>  
        <username>admin</username>  
        <password>admin123</password>  
     </server>  
    <server>  
        <id>crm-snapshot</id>  
        <username>admin</username>  
        <password>admin123</password>  
    </server>  
</servers>

注意:其中snapshot版本的deploy时会打包上传到<snapshotRepository>标签下的仓库 正式版本的会上传到<repository>对应的从仓库

pluginRepositories中的repository

pluginRepositories中的repository是以pluginRepository表示的,它表示插件从什么库地址下载。

<pluginRepositories>
  <pluginRepository>
      <id>nexus</id>
      <name>Nexus</name>
      <url>http://10.21.7.1:8081/repository/ai-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>

它里面的字段和用法与repositories中的repository基本一致。

遇到的400及401问题

401

说明是权限问题,看下当前版本(snapshot/release)对应的setting文件中是否配置了对应私服仓库的的用户和密码

400

说明是发布权限问题,如下图snapshot版本的私服配置为Allow Redeploy, deploy不存在报错

Release版本的配置为  Disable Redeploy 存在401的问题 修改配置权限后即可

 

参考链接:https://blog.csdn.net/netyeaxi/article/details/95804076

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven,`distributionManagement`元素用于指定如何分发项目构建结果,即将构建的项目发布到远程仓库或者FTP服务器等。 `distributionManagement`元素包含以下子元素: - `repository`: 指定发布项目的仓库信息,包含URL、ID、用户名和密码等。 - `snapshotRepository`: 指定发布项目的快照版本仓库信息。 - `site`: 指定发布项目站点的相关信息,例如站点的URL和站点描述等。 - `downloadUrl`: 指定项目发布的下载地址。 - `relocation`: 用于将一个项目从一个组织迁移到另一个组织时,指定新的坐标。 `distributionManagement`元素可以在项目的`pom.xml`文件进行配置。例如: ```xml <distributionManagement> <repository> <id>my-repo</id> <url>http://example.com/repo/</url> </repository> <snapshotRepository> <id>my-snapshot-repo</id> <url>http://example.com/snapshot-repo/</url> </snapshotRepository> <site> <id>my-site</id> <name>My Project Site</name> <url>http://example.com/my-project-site/</url> </site> <downloadUrl>http://example.com/download/</downloadUrl> <relocation> <groupId>com.example.old-group</groupId> <artifactId>my-project</artifactId> <version>1.0.0</version> <message>Relocated to new-group</message> <shaded>true</shaded> </relocation> </distributionManagement> ``` 在使用Maven发布项目时,如果配置了`distributionManagement`元素,可以通过执行`mvn deploy`命令将项目构建结果发布到指定的仓库,如果没有配置,则需要手动将构建结果上传到远程仓库或者FTP服务器等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值