使用Artifactory防止覆盖部署

时间:2015-09-28 11:23:04

标签: artifactory

我已经设置了Artifactory(4.1.2)的实例,我用它来存储java文物。我使用下面配置的gradle插件将工件推送到实例

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')
        }
    }
}

我希望能够防止按版本覆盖已部署的人工制品。这似乎是一个常见的请求,docs

  

您可以通过不授予“删除”权限来阻止用户或组覆盖已部署的版本或唯一快照。始终可以覆盖非唯一快照(前提是已授予“部署”权限)。

但是,我已经设置了deploy个用户,该用户属于1 | deployers组  具有相关权限1 | CanDeploy

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

然而!我可以使用gradle artifactoryPublish将已部署的工件覆盖到我的内容中。

任何建议都会感激不尽:)

编辑:自提出此问题后,功能已按预期开始工作。这非常奇怪,因为我根本没有更改Artifactory设置,但是当我尝试上传与已部署的版本号相同的工件时,现在返回403。我只能假设在访问权限的缓存方面存在一些奇怪的东西,或者某些东西导致我通过Web UI进行的更改在一两天内无效 - 令人不安但它目前正在工作。在我确保其工作的同时,会暂时提出问题!

1 个答案:

答案 0 :(得分:3)

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