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

从Gradle构建脚本中提取常用方法

华星驰
2023-03-14

我有一个Gradle构建脚本(build.Gradle),我在其中创建了一些任务。这些任务主要由方法调用组成。被调用的方法也在构建脚本中。

现在,情况是这样的:

如果Gradle是PHP,下面这样的内容将是理想的:

//script content
...
require("common-methods.gradle");
...
//more script content

但当然,那是不可能的。还是真的?

不管怎么说,我怎么才能达到这个结果呢?最好的方法是什么?我已经通读了Gradle文档,但我似乎无法确定哪种方法将是最简单和最适合的。

parent/
      /build.gradle              // The original build script
      /common-methods.gradle     // The extracted methods
      /gradle.properties         // Properties used by the build script

有什么办法解决吗?

共有1个答案

范玄裳
2023-03-14

共享方法是不可能的,但是您可以共享包含闭包的额外属性,归结起来就是同样的事情。例如,在common-methods.gradle中声明ext.foo={...},使用apply from:应用脚本,然后使用foo()调用闭包。

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

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

  • 我的问题是spring版本没有被识别为可变版本。那么我如何在字符串内部传递它呢?

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

  • Gradle 是以 Groovy 语言为基础, 基于DSL (领域特定语言) 语法的自动化构建工具,但是它增加了一些额外的特性,这使得Gradle更加的容易去阐释构建. 一个构建脚本能够包含任何Groovy语言的元素 ( Any language element except for statement labels ), 每个构建脚本都使用UTF-8编码.

  • 我正在使用Gradle作为其构建系统的Android应用程序。 我的目标是使用一个值(包名)作为: 还可以通过公开它,以便Java代码可以访问它。 此访问必须来自flavor之外(即,应用程序的免费版本需要知道付费版本的软件包名称,以便能够提示用户在Play store中升级)。 所以我想这样做: 只是我不知道如何定义,使其在整个构建中可见。格雷德尔并没有破坏剧本。 因为有几种不同的口味,如果我能