java - 由于来自单元测试的日志文件,Jenkins Maven 发布失败

标签 java maven unit-testing logging jenkins

不幸的是,我可能将两个问题合二为一,或者更确切地说,解决方案可能有两种不同的方式。我在我进行单元测试的几个类中设置了 log4j 记录器。当我运行 mvn clean install 时,它显然会运行这些测试,然后创建一个日志文件(通常是空的,因为没有记录任何令人兴奋的内容)。这不一定是个问题,只是当我执行 Perform Maven Release 时 Jenkins 似乎不喜欢这个。它会大喊工作区有本地更改,并在声明失败之前引用日志文件。

我知道它是单元测试,因为如果我将它们更改为集成测试或忽略它们,一切都会正常进行。但我想要一个解决方案,而不是解决方法。

Jenkins 中是否有配置可以让我解决这个问题?

或者是否有模拟或忽略单元测试日志记录的策略?

我不一定要忽略它们,但它会干扰创建版本。

最佳答案

我不太清楚 Perform Maven Release 的作用,但我可以提出几个解决方案:

  1. 从您的源代码存储库中删除日志文件(因为日志文件在每次运行时都会重新生成,所以我认为它不应该驻留在您的源代码存储库中)。
  2. 将有问题的日志文件的路径添加到版本控制忽略的文件列表中(例如,git 使用名为 gitignore - https://git-scm.com/docs/gitignore 的文件)

希望这对您有所帮助!

关于java - 由于来自单元测试的日志文件,Jenkins Maven 发布失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38722690/

相关文章:

java - 如何存储实例数组

maven - Gradle构建-Maven Modello

java - 包不存在 - android/java

java - maven构建文件,默认目录

java - Jar 存在于本地 Maven 存储库中,但仍然编译错误,错误为 "Package does not exist"

unit-testing - "Implicit"插件 - 为什么 Maven 构建会通过 Surefire 运行测试,即使 POM 中没有提及?

php - Laravel 单元测试依赖注入(inject)

java - Scala 生成的字节码如何丢弃已检查的异常?

java - 为什么 SwingWorker#setProgress 限制为 [0, 100]?

java - 如何使 JToggleButton-size 在选择和取消选择时固定?