我尝试将sourceDirs
添加到基于名为model
的源集添加的模块中。此模块由gradle-apt-plugin自动添加。
我已经能够将sourceSet添加到主模块:
idea {
module {
sourceDirs += file('build/generated/source/apt/model')
generatedSourceDirs += file('build/generated/source/apt/model')
/* NOTE: adding it to generatedSourceDirs only doesn't work (seems to only mark it as generated) */
}
}
我能找到的所有参考和示例都是关于更改主/仅模块,但我想改为配置特定模块。
在Gradle文档中,我在modules
上找到了一个属性IdeaProject
,所以我尝试了这个:
idea {
project {
println 'Module count: ' + modules.size
modules.forEach { ideaModule ->
def sourceSetName = ideaModule.name.substring(name.lastIndexOf('_') + 1)
ideaModule.sourceDirs += file('build/generated/source/apt/' + sourceSetName)
ideaModule.generatedSourceDirs += file('build/generated/source/apt/' + sourceSetName)
}
}
}
但是这个集合中只有一个模块,即使我的项目中有多个模块。
如何配置特定模块?
答案 0 :(得分:1)
我得到help from Jetbrains support for this issue。
总之,这些是当前的选择:
Create separate module per source set
Preferences | Build, Execution, Deployment | Build Tools | Gradle settings
选项
java.lang.IllegalStateException: endPosTable already set
)还有ticket added支持Gradle 4.3中引入的annotationProcessorGeneratedSourcesDirectory
属性。
答案 1 :(得分:0)
这在您可以设置的特定模块中对我有效:
sourceSets {
generated {
java {
srcDirs = ['build/generated/source/apt/model']
}
}
}
,需要关闭“首选项” |“按源设置为每个源集创建单独的模块”选项。构建,执行,部署|生成工具|摇篮设置