4

我已经定义了自定义源集,但gradle build没有将其源包含到 jar 文件中 +gradle idea没有标记srcDirSources.
如何正确配置 gradle?

这是一个例子:

sourceSets {
main {
    java {
        srcDir 'src'
    }
}

api {
    java {
        srcDir 'api'
    }
}
}

在这种情况下gradle build,将仅构建main源集(src目录中的类)并跳过api源集。类似的问题gradle idea- 只有srcdir 将被标记为Sources

4

2 回答 2

2

终于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
}
于 2020-05-21T19:51:35.783 回答
1

通常,如果您还想将其输出分开,您只会声明一个单独的源集。否则,您可以将另一个源目录添加到“主”源集:

sourceSets {
    main {
        java {
            srcDir "src"
            srcDir "api"
        }
    }
}

这也会将“api”标记为 IDEA 中的源目录。

于 2013-09-29T17:59:34.920 回答