如何在Gradle中添加多个相同类型的任务?
How to add multiple tasks of the same type in Gradle?
我需要在构建之前从 *.fbs 文件生成 FlatBuffers 文件。
所以我正在使用 gradle.plugin.io.netifi:gradle-flatbuffers-plugin:1.0.7
为我做这件事。
1 个任务按预期工作:
def generatedSourcePathJava = "$buildDir/generated/source/flatbuffers/java"
def generatedSourcePathCpp = "$buildDir/generated/source/flatbuffers/cpp"
...
task createFlatBuffersJava(type: io.netifi.flatbuffers.plugin.tasks.FlatBuffers) {
outputDir = file(generatedSourcePathJava)
language = "kotlin"
}
build.dependsOn createFlatBuffersJava
但是如果我添加第二个(为 JNI 生成 C++ 文件):
task createFlatBuffersJava(type: io.netifi.flatbuffers.plugin.tasks.FlatBuffers) {
outputDir = file(generatedSourcePathJava)
language = "kotlin"
}
task createFlatBuffersCpp(type: io.netifi.flatbuffers.plugin.tasks.FlatBuffers) {
outputDir = file(generatedSourcePathCpp)
language = "cpp"
}
assemble.dependsOn createFlatBuffersJava, createFlatBuffersCpp
Gradle 构建 (../gradlew :engine-flatbuffers:clean :engine-flatbuffers:build
) 失败并显示以下内容:
- What went wrong:
A problem occurred configuring project ':engine-flatbuffers'.
java.util.ConcurrentModificationException (no error message)
我认为这个问题可以概括为“如何在 Gradle 中添加多个相同类型的任务?”。
PS。 “gradle-5.6-全部
这是 bug/feature 在 https://github.com/gregwhitaker/gradle-flatbuffers-plugin/issues/7 上报告的已知插件。
它在 1.0.5
中有效,但遗憾的是 kotlin
[参数] 在那一点上不受支持。 java
有效且兼容。
我需要在构建之前从 *.fbs 文件生成 FlatBuffers 文件。
所以我正在使用 gradle.plugin.io.netifi:gradle-flatbuffers-plugin:1.0.7
为我做这件事。
1 个任务按预期工作:
def generatedSourcePathJava = "$buildDir/generated/source/flatbuffers/java"
def generatedSourcePathCpp = "$buildDir/generated/source/flatbuffers/cpp"
...
task createFlatBuffersJava(type: io.netifi.flatbuffers.plugin.tasks.FlatBuffers) {
outputDir = file(generatedSourcePathJava)
language = "kotlin"
}
build.dependsOn createFlatBuffersJava
但是如果我添加第二个(为 JNI 生成 C++ 文件):
task createFlatBuffersJava(type: io.netifi.flatbuffers.plugin.tasks.FlatBuffers) {
outputDir = file(generatedSourcePathJava)
language = "kotlin"
}
task createFlatBuffersCpp(type: io.netifi.flatbuffers.plugin.tasks.FlatBuffers) {
outputDir = file(generatedSourcePathCpp)
language = "cpp"
}
assemble.dependsOn createFlatBuffersJava, createFlatBuffersCpp
Gradle 构建 (../gradlew :engine-flatbuffers:clean :engine-flatbuffers:build
) 失败并显示以下内容:
- What went wrong: A problem occurred configuring project ':engine-flatbuffers'. java.util.ConcurrentModificationException (no error message)
我认为这个问题可以概括为“如何在 Gradle 中添加多个相同类型的任务?”。
PS。 “gradle-5.6-全部
这是 bug/feature 在 https://github.com/gregwhitaker/gradle-flatbuffers-plugin/issues/7 上报告的已知插件。
它在 1.0.5
中有效,但遗憾的是 kotlin
[参数] 在那一点上不受支持。 java
有效且兼容。