Боевая задача сборки Gradle, добавляющая дополнительные банки, отличные от зависимостей в build.gradle

#gradle #dependencies #war

#gradle #зависимости #Война

Вопрос:

Недавно мы перешли на сборку Gradle, и я добавил задачу war, которая имеет web.xml и зависимые банки вместе с 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
    }
}
  

Это создает войну, но размер WEB-INF / lib в два раза превышает размер библиотек, фактически заданных в зависимостях. Это может быть добавление банок, от которых зависят зависимые банки. Но сборка Ant отлично работает только с зависимыми банками.

Есть ли какой-либо способ создать войну, используя только банки, предоставленные в зависимостях?

Примечание: https://docs.gradle.org/current/userguide/war_plugin.html не помогло, так как мне нужны все банки в зависимостях, просто хочу избежать дополнительных зависимых банок

Ответ №1:

Вы можете использовать gradle dependencies , чтобы узнать, какие библиотеки вызывают включение этих дополнительных зависимостей.

Как только у вас это получится, просто исключите зависимость, которую вы хотите удалить из своего пакета.

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