我最近读过你在类路径中可以有一个logback.xml
和一个logback-test.xml
,其中测试文件具有更高的优先级。
Logback尝试在类路径中查找名为logback-test.xml的文件。
如果未找到此类文件,则logback会尝试在类路径中查找名为logback.groovy的文件。
- 醇>
如果找不到这样的文件,它会检查类路径中的文件logback.xml。
所以我认为在使用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 delete插件”但找不到任何内容。
答案 0 :(得分:2)
事情要简单得多
Maven为打包的应用程序分配源/资源,并为执行测试分配源/资源
只需在logback-test.xml
文件夹中移动src/test/resources
即可。
并将logback.xml
放在src/main/resources
中。
通过这种方式,logback-test.xml
将在您的构建测试期间可用
由于该文件位于src/test/resources
,因此它永远不会包含在您的应用程序中
虽然打包的应用程序将仅包含和使用logback.xml
中定义的src/main/resources
。
答案 1 :(得分:0)
我找到了自己的解决方案。
删除function t$ArrayToTArray$<T>(ts$:Observable<T>[]):Observable<T[]>{
return Observable.combineLatest(ts$);
}
。相反,根据您的打包,使用负责构建maven-resource-plugin
或maven-jar-plugin
文件的maven-war-plugin
或jar
(并在测试后稍后运行)。
war
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<excludes>
<exclude>test/**</exclude>
<exclude>*test*</exclude>
</excludes>
</configuration>
</plugin>
其中<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<packagingExcludes>${webdir}/test/**,${webdir}/*test*</packagingExcludes>
</configuration>
</plugin>
是构建的war文件中类路径根目录的路径。您可以将其添加到webdir
标记(直接位于<properties>
标记下)。就我而言,它是<project>
。
WEB-INF/classes
pom.xml