问题标签 [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.
gradle - 如何为 Gradle 任务指定类别?
我正在 Intellij IDEA 中编写 Gradle 任务。我注意到在 Gradle 窗口中,任务出现在文件夹下,如下所示:
我想知道,你怎么能给一个任务一个“类别”,以便它出现在一个文件夹中,如屏幕截图所示?
我创建的所有任务通常都以other
. 我还在编写一个自定义插件,并希望它出现在我选择的“文件夹”名称下。但我认为在编写任务时这将是相同的答案。
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 文件夹之外。
所以是的......这太复杂了,只是......呃!但事实就是如此。
gradle - 在将闭包传递给 gradle 扩展时,为什么闭包的所有者不是主要的 Projects 对象?
我正在查看闭包范围,发现输出计数器很直观,这段代码在build.gradle
文件中
为什么owner
不等于this
,gradle会克隆闭包吗?
PS:对于将来会阅读它的任何人,“multigradle”是我的 gradle 项目名称。
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
gradle - Groovy DSL 约定对象“无法获取未知属性”
我的 build.gradle 中有以下代码:
它执行得很好 -./gradlew hello
打印出预期的“Hi from Gradle”。
greet
但是,在脚本中使用变量(例如println greet
)会产生“无法为 org.gradle.api.Project 类型的项目 ':app' 获取未知属性 'greet'”。
我的问题是 - 在针对闭包调用时如何找到“问候”变量,但在用作常规变量时找不到。幕后发生了什么 Groovy/Gradle 魔法?