gradle - 升级到 5.5.1 后出现 gradle 错误“Could not get unknown property 'srcDirs' for source set 'groovy'”
问题描述
我有一个多项目构建,我在 master 中包含了 groovy 插件,build.gradle
如下所示:
plugins {
id 'groovy'
}
但是,我的一个具有 groovy 资源的子项目正在这样做:
sourceSets {
main {
java.srcDirs = []
groovy.srcDirs += ["src/main/java", "src/main/groovy"]
}
}
我得到一个错误:
> Could not get unknown property 'srcDirs' for source set 'groovy' of type org.gradle.api.internal.tasks.DefaultSourceSet.
我正在升级我的构建脚本以在 gradle v5.5.1 而不是 v2.13 下工作。这是以前工作的,我在子项目构建文件中有这个:
apply plugin: 'groovy'
但是从 2.13 升级到 5.5.1 后,它开始给我这个:
* What went wrong:
A problem occurred evaluating project ':mysubproj'.
> Failed to apply plugin [class 'org.gradle.api.plugins.GroovyBasePlugin']
> Cannot change attributes of configuration ':mysubproj:apiElements' after it has been resolved
这就是为什么我认为我应该在主构建脚本中声明插件。
我在主构建脚本中的插件引用不应该让子项目知道 groovy 扩展吗?如果没有,正确的方法是什么?谢谢!
解决方案
问题是 Groovy 插件没有应用于子项目,您需要适当地应用它。
allprojects {
apply plugin: 'groovy'
}
我知道过去新的插件样式不适用于子项目,这可能已经解决,如果是这样 - 使用它。
至于例外情况,当您似乎正在执行上述操作时,我需要构建脚本来为您提供建议:)
推荐阅读
- ios - 大约在 iOS 13.3 / XCode 11 / Swift 中,字符串中的符号发生了变化
- android - 不带“=”的改造查询参数
- c++ - 在 c++ 中与 alsa-lib 同时播放“.wav”音频的简单示例?
- excel - Excel根据条件和区别加值
- linux - 使用 ldconfig 注册库路径未按预期工作
- ruby-on-rails - RoR 中的 Kimurai - 在解析中获取 current_user
- java - Spring Boot - WebFlux 在并行运行时将结果的上下文与 id 保持一致
- c - 使用 MPI_File_write_at 格式化输出?
- python-3.x - 免分割车牌识别模型问题
- vb.net - 鼠标在画布上移动会停止计时器