我已定义自定义源集,但gradle build
未将其源文件包含在jar文件中gradle idea
未将srcDir
标记为Sources
。
如何配置gradle正确的方法?
以下是一个例子:
sourceSets {
main {
java {
srcDir 'src'
}
}
api {
java {
srcDir 'api'
}
}
}
在这种情况下,gradle build
将仅构建main
源集(来自src
目录的类)并跳过api
源集。 gradle idea
的类似问题 - 仅src
目录将被标记为Sources
答案 0 :(得分:2)
通常,如果您还想将其输出分开,则只需声明一个单独的源集。否则,您只需将另一个源目录添加到“主”源集:
sourceSets {
main {
java {
srcDir "src"
srcDir "api"
}
}
}
这也将“api”标记为IDEA中的源目录。
答案 1 :(得分:0)
终于8年后,我得到了正确的答案。
// Let's the default resource generation depend on your sourset's resource generation.
processResources.dependsOn( processApiResources )
// Inherit the standard configuraton. You need to change this is want to have a different configuration for this sources.
configurations {
apiCompile.extendsFrom mainCompile
apiRuntime.extendsFrom mainRuntime
}
jar {
// Add directories with generated sources (might be several - one for every supported language).
from sourceSets.api.output.classesDirs
// Add output directories of the sourceset's resources.
from sourceSets.api.output.resourcesDir
}