当前位置: 首页 > 知识库问答 >
问题:

在构建脚本范围中使用gradle项目变量

梅庆
2023-03-14

这里有一个类似的问题访问项目的额外属性在构建脚本闭包

但是我发现了一个“变通方法”,看起来不像是最佳的

我有一个多gradle项目-我在主gradle文件中使用声明库

subprojects {
 repostiories {
    maven {..}
  }
}

现在我还必须设置这些构建脚本,因为我使用插件!

所以再次构建脚本{repositories。。。

现在,我不想两次粘贴URL,而是想使用一个属性——就像我在project中所想的那样。ext属性在buildscript阶段没有设置,因此我将它们放在gradle中。设置文件

我无法设置根项目。ext.xx设置,所以我必须使用

gradle.ext {
 mavenURLs =  [ companyURL1, companyURL2 ... etc]
}

现在我可以用gradle了。ext.mavenURLs在我的构建中。格雷德尔锉刀

有没有更好的办法?有没有办法在一个块中为所有项目设置构建脚本和依赖存储库,而不重复一次构建脚本和一次依赖?

共有1个答案

上官鸿朗
2023-03-14
def repoClosure = { RepositoryHandler repoHandler ->
    repoHandler.mavenLocal()
    repoHandler.mavenCentral()
    ['http://mycompany/repo1', 'http://mycompany/repo2'].each { mavenURL ->
        repoHandler.maven {
            url mavenURL
            credentials {
                username 'foo'
                password 'bar'
            }
        }
    }
}
project.with {
    allprojects {
        repoClosure(buildscript.repositories)
        repoClosure(repositories)
    }
}
 类似资料:
  • 我的问题是spring版本没有被识别为可变版本。那么我如何在字符串内部传递它呢?

  • 我有一个gradle groovy项目,其中我只有groovy脚本,它们不在源目录中,而是在一个单独的目录中。此外,我还有groovy junit测试,这些测试使用groovy shell测试调用它们的脚本。 我有一个gradle构建来运行测试,然后将脚本压缩到单独的zip文件中,并将它们上传到maven repo中。问题是,gradle还创建并上传了一个jar文件。由于源目录中没有文件,jar只

  • 问题内容: 我有一个Gradle构建脚本,该脚本必须实例化Task中的Java类并在创建的对象上调用方法。目前,我有以下内容: 问题是找不到该类。我阅读了有关如何在Gradle中使用Groovy类的文章,但是我需要Java类来自外部JAR文件。如何将jar添加到构建源?似乎该块没有执行我期望的操作。谁能给我一个正确方向的提示? 问题答案: 该依赖关系作为项目依赖关系而不是脚本依赖关系本身添加。您需

  • 我有一个Gradle构建脚本,它必须在一个任务中实例化一个Java类,并在创建的对象上调用一个方法。目前,我有以下内容: 问题是找不到类。我阅读了这篇关于如何在Gradle中使用Groovy类的文章,但我需要我的Java类来自外部JAR文件。如何将jar添加到构建源中?似乎块没有完成我所期望的任务。谁能给我一个正确方向的提示吗?

  • 我尝试使用gradle构建工具构建一个简单的android应用程序。但是我得到了这样的错误 方法无签名:org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.compile()适用于参数类型:(java.lang.String)值:[org.gradle.api.plugins: gradle and

  • 主要内容:Gradle如何使用Groovy,Groovy的JDK方法,以下是纠正/补充内容:Gradle构建脚本文件用来处理两件事情:一个是项目和另一个的任务。每个生成表示一个或多个项目。一个项目表示一个JAR库或Web应用程序,也可能表示由其他项目产生的JAR文件组装的ZIP。简单地说,一个项目是由不同的任务组成。一个任务是指构建执行的一块工作。任务可能是编译一些类,创建一个,产生的或发布一些归档文件库。 注:Gradle使用Groovy语言编写脚本。 Gradle提供了一个域特定语言