问题标签 [gradle-groovy-dsl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
11596 浏览

gradle - 如何为 Gradle 任务指定类别?

我正在 Intellij IDEA 中编写 Gradle 任务。我注意到在 Gradle 窗口中,任务出现在文件夹下,如下所示:

在此处输入图像描述

我想知道,你怎么能给一个任务一个“类别”,以便它出现在一个文件夹中,如屏幕截图所示?

我创建的所有任务通常都以other. 我还在编写一个自定义插件,并希望它出现在我选择的“文件夹”名称下。但我认为在编写任务时这将是相同的答案。

0 投票
1 回答
323 浏览

gradle - Gradle:在多个子项目中包含相同的 SourceSet

如何将单个源集添加到多个子项目?

首先……是的,我知道这有多荒谬。这只是我必须做的事情。

设置

  • 该项目使用 Groovy DSL。
  • 有 3 个子项目(A、B、C),每个子项目都有自己独特的主源集。
  • 这些项目之外还有 5 个额外的源集(1、2、3、4、5)。
  • 可以单独编译外部源集的 Nonce。
  • 所有源集都依赖于在每个子项目中定义了 3 个不同时间的接口。
  • 子项目主源不能依赖任何外部源
  • 1和2需要用A、B、C编译。
  • 3需要用A和B编译。
  • 4需要用B和​​C编译
  • 5 只需要用 C 编译。
  • 4 和 5 需要依赖于 2 中定义的类。
  • 5 必须是一个独立的源集,以便它可以作为源集包含在任何未来可能添加的子项目中。
  • 不允许任何外部源包含来自任何其他源集的源
  • 不允许单独编译任何外部源。
  • 不允许将任何外部源包含为 jar 或项目依赖项;它们必须作为源集包含在内,并且必须为包含它们的每个子项目单独编译。

一个

C

设置.gradle

问题是 4 和 5 无法找到 2 中的类,我的 IDE(IntelliJ)无法解析正确的类路径。

我真正需要的是外部源集的行为就像它们有 3 个单独的副本,而实际上没有 3 个单独的副本,并且我需要在不使用符号/软链接的情况下这样做。

该解决方案只需要使用 gradle,但它可以使用 JetBrains“idea”插件进行 gradle,只要它不涉及提交“.idea”文件夹下的任何文件,但它可以包含内联 xml 或资源文件夹中的文件在 .idea 文件夹之外。

所以是的......这太复杂了,只是......呃!但事实就是如此。

0 投票
1 回答
3643 浏览

gradle - 如何使用 Gradle“平台”在多项目设置中对齐依赖版本?

0 投票
1 回答
280 浏览

gradle - 在将闭包传递给 gradle 扩展时,为什么闭包的所有者不是主要的 Projects 对象?

我正在查看闭包范围,发现输出计数器很直观,这段代码在build.gradle文件中

为什么owner不等于this,gradle会克隆闭包吗?

PS:对于将来会阅读它的任何人,“multigradle”是我的 gradle 项目名称。

0 投票
0 回答
58 浏览

java - 有没有办法在使用 Gradle 组装 Jar 时修改文件的全部内容。?

我的项目中有一个用例,我必须在准备 jar 时修改类文件内容并使用自定义类加载器来加载该类。

为了实现上述场景,我CopySpec在我的build.gradle. 令人惊讶的是,它适用于小类文件,而不适用于大文件。有什么我想念的吗?

例如,我有一个名为 AbcConfig.class 的文件,println 语句打印如下:它显示 33232 字节写入(修改后)com/abc/xyz/config/AbcConfig.class 33216 -> 33232 33232

但是当我提取 jar 并执行 ls -lrt 以检查磁盘上特定字节的数量时,它显示(输出中的 33202)

-rwxrwxrwx 1 根 33202 8 月 3 日 13:02 AbcConfig.enc

0 投票
1 回答
36 浏览

gradle - Groovy DSL 约定对象“无法获取未知属性”

我的 build.gradle 中有以下代码:

它执行得很好 -./gradlew hello打印出预期的“Hi from Gradle”。

greet但是,在脚本中使用变量(例如println greet)会产生“无法为 org.gradle.api.Project 类型的项目 ':app' 获取未知属性 'greet'”。

我的问题是 - 在针对闭包调用时如何找到“问候”变量,但在用作常规变量时找不到。幕后发生了什么 Groovy/Gradle 魔法?

0 投票
1 回答
31 浏览

gradle - Gradle黄瓜任务无法识别黄瓜步骤

我的构建文件如下所示并附上我的文件夹路径。当我运行任务时,它说未定义的步骤并要求再次执行步骤。

在此处输入图像描述

我在 gradle 中创建了自己的任务来运行黄瓜测试