使用Artifactory防止覆盖部署

我已经设置了一个Artifactory(4.1.2)的实例,我正在使用它来存储java artefact。 我使用下面配置的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')
        }
    }
}

我希望能够防止覆盖已经部署的版本文物。 这似乎是一个共同的要求,文件说

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

但是,我已经建立了一个deploy用户,它位于组1 | deployers 1 | deployers具有相关权限1 | CanDeploy 1 | CanDeploy

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

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

任何意见将感激地收到:)

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


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

链接地址: http://www.djcxy.com/p/29457.html

上一篇: Preventing Overwriting Deployments using Artifactory

下一篇: Is std::thread::id unique across processes?