gpt4 book ai didi

java - Maven测试后删除资源

转载 作者:行者123 更新时间:2023-11-30 02:13:04 25 4
gpt4 key购买 nike

我最近读到你可以拥有 logback.xml和一个 logback-test.xml在类路径中,测试文件具有更高的优先级。

  1. Logback tries to find a file called logback-test.xml in the classpath.

  2. If no such file is found, logback tries to find a file called logback.groovy in the classpath.

  3. If no such file is found, it checks for the file logback.xml in the classpath..

Source

所以我认为在使用 Maven 构建后进行测试并记录到文件时在控制台中进行日志记录是一个好主意(无需手动更改输出)。我找到了maven-resources-plugin ,这可以<exclude>一些资源。我在插件中指定了测试文件(如 logback-test.xml ),如下所示:

pom.xml

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>test/**</exclude>
<exclude>*test*</exclude>
</excludes>
</resource>
</resources>
</configuration>
</plugin>

效果很好,但有一个问题。我绝对需要访问*test*文件(是的,还有 logback-test.xml ,所以我不能只排除它而不是通配符 *test* )和 test/**测试期间的目录。我只想在测试完成后排除/删除它们。使用此配置,排除的资源永远不会被复制,但我希望首先复制它们(以使它们可以通过测试访问),然后(在测试成功运行后)删除它们。

我怎样才能实现这个目标?我一直在寻找“maven 删除插件”,但没有找到。

最佳答案

事情变得简单多了。
Maven 将打包应用程序的源/资源和执行测试的源/资源分开。
只需将 logback-test.xml 移动到 src/test/resources 文件夹中即可。并将 logback.xml 放置在 src/main/resources 中。

这样,logback-test.xml 将在构建测试期间可用。
由于该文件位于 src/test/resources 中,因此永远不会将其包含在您的应用程序中。
而打包的应用程序将仅包含并使用 src/main/resources 中定义的 logback.xml

关于java - Maven测试后删除资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49544216/

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