本地存储库(Repo A)中的工件部署被强制使用用户插件控制GAVC布局。
我们希望通过将所有生产发布的工件复制到另一个存储库(Repo B)来区分它们。
如何限制副本只发生在GAVC(GroupId / ArtifactId / Version / Classifier)结构中的版本级别目录中。
下面的代码可以限制GroupId / ArtifactId文件夹级别的任何副本。
beforeCopy { item, targetRepoPath, properties ->
if (item.repoKey.equals("RepoA")){
if (item.repoPath.isFolder()){
def lastChild = repositories.getChildren(item.repoPath).last().repoPath
def childLayoutInfo = repositories.getLayoutInfo(lastChild)
String childGroupId = childLayoutInfo.getOrganization()
String childArtifactId = childLayoutInfo.getModule()
String childVersionId = childLayoutInfo.getBaseRevision()
if ( "${childGroupId}" == "null" || "${childArtifactId}" == "null" || "${childVersionId}" == "null" ) {
throw new CancelException("Copy not permitted at this level")
}
}
}
}
我还想限制在文件/分类器级别直接触发的复制请求。