Build 如何将sourceset添加到jar文件?
我已经定义了自定义源代码集,但是Build 如何将sourceset添加到jar文件?,build,intellij-idea,gradle,Build,Intellij Idea,Gradle,我已经定义了自定义源代码集,但是gradle build没有将其源代码包含到jar文件中+gradle idea没有将srcDir标记为sources 如何正确配置gradle 以下是一个例子: sourceSets { main { java { srcDir 'src' } } api { java { srcDir 'api' } } } 在这种情况下,gradle build将只生成main源集(来自src目录的类),并
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
dir将标记为Sources
通常,如果您还希望保持其输出独立,您只会声明一个独立的源集。否则,您只需将另一个源目录添加到“主”源集中:
sourceSets {
main {
java {
srcDir "src"
srcDir "api"
}
}
}
这也将在IDEA中将“api”标记为源目录。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
}
请展示构建脚本的相关部分。在我的问题中添加了示例让我们假设我确实需要单独的源代码集。在这种情况下我应该怎么做?相应地配置
jar
任务和idea.module
扩展。有关详细信息,请参阅。已经7年了,还没有人回答这个问题。