摇篮版本库项目现场(Gradle repositories as project field)

2019-10-20 16:38发布

在gradle这个,我可以指定我的自定义布局图案作为库

repositories {
  ivy {
    url "http://repo.mycompany.com/repo"
    layout "pattern", {
        artifact "3rd-party-artifacts/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"
        artifact "company-artifacts/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"
        ivy "ivy-files/[organisation]/[module]/[revision]/ivy.xml"
    }
  }
}

那是好的,但如果我也想用uploadArchivesbuildscript关闭,我还需要指定的存储库。 我的想法是打出来的资料库作为一个字段。

@Field def myRepos = {
  ivy {
    url "http://repo.mycompany.com/repo"
    layout "pattern", {
        artifact "3rd-party-artifacts/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"
        artifact "company-artifacts/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"
        ivy "ivy-files/[organisation]/[module]/[revision]/ivy.xml"
    }
  }
}

这适用于

repositories myRepos

但对于

buildscript {
  repositories myRepos
}

uploadArchives {
  repositories myRepos
}

这给

No such property: myRepos for class: 'org.gradle.api.internal.initialization.DefaultScriptHandler'

我gradle这个版本是1.11。

Answer 1:

而不是使用的@Field ,你可以做def myRepos = ... 。 该buildscript块是很特别的,如果你想要的和构建脚本的其余部分之间的分享,你就必须做ext.myRepos = ...里面buildscript ,并参考其使用buildscript.myRepos从外面。



文章来源: Gradle repositories as project field
标签: groovy gradle