2015-09-28 124 views
7

我已经设置了一个Artifactory(4.1.2)的实例,我正在使用它来存储java artefact。我使用配置如下使用Artifactory预防覆盖部署

artifactory { 
    contextUrl = 'http://example.com/artifactory' 
    publish { 
     repository { 
      // The Artifactory repository key to publish to 
      repoKey = 'libs-release-local' 

      username = artifactory_username 
      password = artifactory_password 
     } 
     defaults { 
      publications('releaseJar') 
     } 
    } 
} 

我希望能够以防止版本覆写已部署的文物的Gradle插件推动文物的实例。这似乎是一个常见的请求,并且docs

您可以通过不授予删除权限来防止用户或组覆盖已部署的版本或唯一快照。非独特的快照总是可以被覆盖(如果授予了“部署”权限)。

不过,我已经建立了一个deploy用户是在群体1 | deployers 与相关权限1 | CanDeploy

CanDeploy权限仅对deployers组具有Deploy/Cache权限。

但是!我可以使用gradle artifactoryPublish覆盖已部署的工件到我的心中。

任何建议,将受到欢迎:)

编辑:既然问这个问题的功能已开始作为理想的工作。这非常奇怪,因为我根本没有更改Artifactory设置,但是当我尝试上载与已部署的相同版本号的工件时,现在返回403。我只能假设有关访问权限的缓存有些奇怪,或者导致我的更改通过Web UI在一两天内无法生效 - 令人不安,但它目前正在工作。在我确保其工作的同时将留下疑问。

回答

3

设置检查权限的最简单方法是在浏览器UI中的“有效权限”选项卡中。 选择“releaseJar”回购时,如果在“deploy”用户上看到选中的“删除”权限,则可能会有另一个权限目标给予该用户删除权限。 您可以在“用户”页面看到单个用户使用的权限目标列表。 希望这有助于。

+1

Thx用于回复 - 部署用户仅作为“Deploy/Cache”perm检查。然而,这现在开始工作。请参阅有关问题的编辑。 – Dori