解决使用Artifactory仓库时无法下载snapshot包的问题

1、问题背景

新搭建了一个Artifactory环境大体上都没有什么问题。但就是在执行mvn指令时无法获取通过mvn deploy部署到Artifactory的snapshot包。

2、分析解决

a、并没有下载有时间后缀的文件jar

maven下载时直接下载1.0-SNAPSHOT/xxxx-1.0-SNAPSHOT.jar,我手动在浏览器中访问是404。
这就奇怪了仓库中并不存在这的jar。应该全都是xxxx-1.0-20121116.101908-1.jar这种形式的。

b、由maven-metadata.xml决定下载哪个快照

maven首先会下载1.0-SNAPSHOT/中的maven-metadata.xml文件来判断仓库上最新的SNAPSHOT是哪一个。
手动访问maven-metadata.xml还是404。我一直以为Artifactory会自动搞定,原来也是这样搞定的。

c、比较新旧Artifactory权限

直觉告诉我可能是权限问题,因为Artifactory搭建完后,要设置Deploy权限给Remote资源,并授权Deploy权限给有权限上传用户(或持续集成用户,因为我用的是bamboo)。

比较新旧权限,发现有一处配置不同就是新环境并没有给有Deploy权限的用户也加上Annotate权限。
因为加入Deploy权限后就已经可以执行mvn deploy指令。所以没在意Annotate。

d、加权并mvn deploy测试

加上Annotate权限再执行mvn deploy,浏览器访问maven-metadata.xml文件不再是404了。

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
  <groupId>xxx.xxx.xxx</groupId>
  <artifactId>xxx-xxx</artifactId>
  <version>1.0-20121122.110600-1</version>
  <versioning>
    <snapshot>
      <timestamp>20121128.065640</timestamp>
      <buildNumber>1</buildNumber>
    </snapshot>
    <lastUpdated>20121128065641</lastUpdated>
    <snapshotVersions>
      <snapshotVersion>
        <extension>pom</extension>
        <value>1.0-20121122.110600-1</value>
        <updated>20121122110600</updated>
      </snapshotVersion>
      <snapshotVersion>
        <classifier>javadoc</classifier>
        <extension>jar</extension>
        <value>1.0-20121128.065640-1</value>
        <updated>20121128065640</updated>
      </snapshotVersion>
      <snapshotVersion>
        <classifier>sources</classifier>
        <extension>jar</extension>
        <value>1.0-20121122.062603-1</value>
        <updated>20121122062603</updated>
      </snapshotVersion>
      <snapshotVersion>
        <extension>jar</extension>
        <value>1.0-20121128.065640-1</value>
        <updated>20121128065640</updated>
      </snapshotVersion>
    </snapshotVersions>
  </versioning>
</metadata>

其他用户再mvn xxx都可以正常访问SNAPSHOT资源。


3、总结

看来还是要认真看一看Artifactory权限说明和手册。

Artifactory的权限说明

Read - Allows reading/downloading artifacts.
Annotate - Allows annotating artifacts and folders with metadata and properties.
Deploy - Allows deploying artifacts and deploying to caches (populate them with remote artifacts).
Delete - Allows deleting or overwriting artifacts.
Admin - Allows adding permissions to other users on this permission target.

转载于:https://my.oschina.net/noahxiao/blog/92531

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值