【发布时间】:2017-01-18 21:32:51
【问题描述】:
我在 src/main/resources 下有一个“生产”logback 配置文件 logback.xml...但该目录还包含“测试”logback 配置文件 logback-test.xml(logback 首先查找)。
创建可执行 jar 时,我想删除“测试”xml 文件。
我试过了
jar {
manifest {
// PS this is the correct line for Shadow Plugin...
attributes 'Class-Path': '/libs/a.jar'
attributes 'Main-Class': 'core.MyMainClass'
}
exclude("**/resources/*test*")
}
我试过了
jar {
manifest {
attributes 'Class-Path': '/libs/a.jar'
attributes 'Main-Class': 'core.MyMainClass'
}
doLast {
exclude("**/resources/*test*")
}
}
...我做错了什么?
稍后
我发现here 可能让我自己很难将这些 xml 放在 /src/main/resources 下...所以我在 src 下创建了一个新目录 /logback,然后将文件放在那里.我通过这样做将它添加到类路径中(因为 logback 说这是它查找这些文件的地方):
test {
classpath += files( 'src/logback' )
}
有趣的是,也意味着测试期间的日志记录正常,这足以让生成的可执行 jar 在运行时使用 logback 正常。
不幸的是,像这样配置“shadowJar”task
shadowJar {
baseName = 'DocumentIndexer'
classifier = null
version = project.version
exclude("logback/*test*")
}
或像这样配置“jar”task:
jar {
manifest {
attributes 'Class-Path': '/libs/a.jar'
attributes 'Main-Class': 'core.ConsoleIOHandler'
}
exclude("logback/*test*")
}
...只是拒绝工作:文件 logback-test.xml 仍在 jar 中。
【问题讨论】: