В моем файле Gradle есть специальная задача для создания исполняемого (или жирного) фляги. Этот jar-файл должен содержать реализацию ведения журнала slf4j, чтобы при запуске jar-файла пользователь получал некоторую информацию. Поэтому я хочу, чтобы файл jar logback и файл конфигурации были включены в исполняемый файл jar. Однако я не хочу, чтобы ни один из них не появлялся в выходных данных встроенной задачи jar
.
Я могу специально включить jar logback в исполняемый jar. Тем не менее я не могу исключить файл logback.xml из библиотеки JAR, а также исключить его в исполняемый файл JAR. Использование include("logback.xml")
в задаче fatjar приводит к тому, что выходной jar содержит ТОЛЬКО файл XML и ничего больше!
Вот соответствующая часть моего файла сборки:
dependencies {
runtime group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
}
task fatJar(type: Jar) {
manifest {
attributes 'Main-Class': 'MyClass'
}
baseName = baseName + "-executable"
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) } }
with jar
// include('logback.xml') //FAIL!
}
jar {
// clients should configure slf4j themselves
exclude('logback.xml')
}
Как я могу исключить logback.xml
из обычной задачи jar, но включить ее в задачу fatJar
?