War Gradle 构建的任务添加了比 build.gradle 中的依赖项更多的 jar

War task of Gradle build adding extra jars than those from dependencies in build.gradle

我们最近迁移到 Gradle 构建,我添加了一个 war 该任务,该任务具有 web.xml 和依赖 jar 以及在 jar 任务中创建的 jar。

task testWar(type: War)
{
archiveName 'test.war'
webXml = file('WebContent/WEB-INF/web.xml')

into ('WEB-INF/lib')
    {
        from configurations.compile
        from jar
    }
}

这会创建 war,但 WEB-INF/lib 的大小是依赖项中实际给出的库大小的两倍。它可能正在添加依赖罐子所依赖的罐子。但是 Ant build 只适用于依赖的 jar。

有什么方法可以只使用依赖项中提供的 jar 来创建 war 吗?

注意:https://docs.gradle.org/current/userguide/war_plugin.html 没有帮助,因为我需要依赖项中的所有 jar,只是想避免额外的依赖 jar

您可以使用 gradle dependencies 了解哪些库导致包含这些额外的依赖项。

一旦你有了它,然后简单地排除你想从你的包中删除的依赖项。

dependencies {
    compile (group: 'org.quartz-scheduler', name: 'quartz', version: '2.3.0') {
        exclude group: 'org.slf4j', module: 'slf4j-api'
    }
}