Artifactory的Groovy插件限制从一个Repo移动到特定的repo

时间:2014-01-07 04:24:50

标签: groovy artifactory

我的Artifactory中有3个回购,想要通过插件处理Artifacts的移动。

1. Build-repo
2. Testing-repo
3. Prod-repo

尝试创建一个插件,仅允许将神器从一个回购(Build-repo)移动到其他回购(Testing-repo)。我应该阻止开发人员直接从Build-repo转移到Prod-repo

同样Testing-repo -> Prod-repo

 beforeMove { item, targetRepoPath, properties ->
        log.debug("ENTER storage -> beforeMove")
        if (!security.isAdmin() && item.repoKey.equals("Build-repo")) {
        if (item.targetRepoKey.equals("Prod-repo")) {
                    throw new CancelException("Artifact Move not permitted for ${item.repoKey}: ", 403)
            }
    }
        log.debug("EXIT storage -> beforeMove")

但我收到错误,这可能是使用Property的问题。如何获取使用groovy插件的完整属性列表。

Caused by: groovy.lang.MissingPropertyException: No such property: targetRepoKey for class: org.artifactory.model.xstream.fs.FileInfoImpl

1 个答案:

答案 0 :(得分:1)

错误引用的属性不是Artifactory属性,而是Groovy对象属性。在第4行中,您有item.targetRepoKey,而它应该是item.repoKey

我强烈建议您使用正确的IDE(IntelliJ IDEA)并在代码中使用trypes,例如第1行应该是:

beforeMove { FileInfo item, RepoPath taretRepoPath, Properties properties ->

这可以节省您在处理此类错误时的时间。