gpt4 book ai didi

gradle - Gradle-如何从可执行jar中排除资源?

转载 作者:行者123 更新时间:2023-12-03 04:29:16 37 4
gpt4 key购买 nike

我在src / main / resources下有一个“生产” logback配置文件logback.xml ...,但是该目录还包含“testing” 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可能使我自己很难将这些xmls放在/ src / main / resources下...因此,我在src下创建了一个新目录/ logback,然后将文件放在那里。我通过执行以下操作将其添加到类路径中(如logback所示,它是查找这些文件的位置):
test {
classpath += files( 'src/logback' )
}

有趣的是,这不仅意味着测试期间的日志记录可以正常进行,还足以使生成的可执行jar在运行时使用logback OK。

不幸的是,像这样配置“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*")
}

...只是拒绝工作:jar中仍然存在文件logback-test.xml。

最佳答案

我从gradle.org的论坛上获得了the answer

基本的答案是“测试”登录配置文件应位于src / test / resources下,而“生产”配置文件应位于src / main / resources下。这样,前者将被从 jar 中排除。

回答者还说,“资源”是从中指定相对路径的根源之一。

关于gradle - Gradle-如何从可执行jar中排除资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41729841/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com