我需要从*生成FlatBuffers文件。构建前的FBS文件。所以我用gradle.plugin.io.netifi:gradle-flatbuffers-plugin:1.0.7
来为我做。
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 build (../gradlew :engine-flatbuffers:clean :engine-flatbuffers:build
)出现以下错误:
- 哪里出错了:配置项目':engine-flatbuffers'时出现问题。java.util.ConcurrentModificationException(无错误信息)
我认为这个问题可以概括为"如何在Gradle中添加多个相同类型的任务?">
p。"gradle - 5.6 all">
这是一个已知的插件bug/特性,报告在https://github.com/gregwhitaker/gradle-flatbuffers-plugin/issues/7.
它在1.0.5
中工作,但kotlin
[argument]在那一点上不受支持。java
的工作和兼容。