如何将sourceset添加到jar文件中?

时间:2013-09-28 11:07:41

标签: 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目录的类)并跳过api源集。 gradle idea的类似问题 - 仅src目录将被标记为Sources

2 个答案:

答案 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
}