首页 > 解决方案 > Gradle 将哪些文件打包到 jar 存档中?

问题描述

什么表达式(在build.gradle文件中)评估为默认打包到 jar 存档中的文件列表(不调整“jar”任务?

我不能轻易地在org.gradle.jvm.tasks.Jar和的来源中发现它org.gradle.api.tasks.bundling.Jar

这个问题的动机是使用未添加到 jar 存档的自定义 sourceSet 文件。

标签: javagradlejarsource-sets

解决方案


jar添加任务并对其进行配置的是 Java 插件。您可以在该类的源代码中看到这一点org.gradle.api.plugins.JavaPlugin

private TaskProvider<Jar> registerJarTaskFor(Project project, JavaPluginConvention pluginConvention) {
    return project.getTasks().register(JAR_TASK_NAME, Jar.class, jar -> {
        jar.setDescription("Assembles a jar archive containing the main classes.");
        jar.setGroup(BasePlugin.BUILD_GROUP);
        jar.from(mainSourceSetOf(pluginConvention).getOutput());
    });
}

https://github.com/gradle/gradle/blob/e343cfe2b37317a3de119da2809887f76042fe0d/subprojects/plugins/src/main/java/org/gradle/api/plugins/JavaPlugin.java#L315-L321


推荐阅读