gpt4 book ai didi

maven - 如何在 Jenkins Maven 作业中发布 Scalastyle 结果?

转载 作者:行者123 更新时间:2023-12-03 23:23:20 33 4
gpt4 key购买 nike

我们有一个 Scala 项目并使用 Maven 和 Jenkins 来构建它。现在我们还想使用 Scalastyle 进行静态代码分析。
它在 IDE 中运行良好,如果我使用 Jenkins 自由式工作。输出文件被创建,Jenkins 显示了一个带有样式警告和错误的漂亮图表。

但是,如果我使用 Jenkins Maven 作业,“Checkstyle 趋势”仍然为空,尽管 xml 文件在那里并且具有正确的名称 (checkstyle-result.xml)。

我找到了this .那里的讨论有点困惑,但我知道发布 Scalastyle 结果也应该适用于 Maven 工作。

我弄错了吗?或者实际上有没有办法让 Jenkins 为我的 Maven 工作发布 Scalastyle 结果?还是某种解决方法? (除了使用自由式工作或 SBT ......)

最佳答案

在尝试了一些东西之后,我找到了解决方案。我所需要的只是我的多模块项目的根 pom 中的一个 Scalastyle 条目,如下所示:

<build>
<plugins>
<plugin>
<groupId>org.scalastyle</groupId>
<artifactId>scalastyle-maven-plugin</artifactId>
<version>0.8.0</version>
<configuration>
<sourceDirectory>${project.basedir}/src/main/scala</sourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/scala</testSourceDirectory>
<configLocation>scalastyle_config.xml</configLocation>
<outputFile>${project.basedir}/checkstyle-result.xml</outputFile>
<outputEncoding>UTF-8</outputEncoding>
</configuration>
</plugin>
</plugins>
</build>

这里重要的部分是 ${project.basedir}。我之前试过没有,它没有工作。

在 Jenkins 的项目配置中,我在 Build -> 目标和选项部分给出了 scalastyle:check 目标,例如
clean install scalastyle:check 

在 Build settings 下,我勾选了 Publish Checkstyle analysis results 复选框。

现在 Jenkins 发布了 Scalastyle 结果。然而,一个问题仍然存在:Jenkins 似乎没有选择我的 Scalastyle 配置文件 (scalastyle_config.xml),而是使用了 scalastyle-maven-plugin 的默认规则。至少这是我怀疑的,因为对于同一个项目,我在 IntelliJ(它使用我的自定义配置文件)中得到的 Scalastyle 警告比在 Jenkins 中更多......

更新:我错了。 Jenkins 确实采用了我的自定义规则。然而,它比 IntelliJ 显示了更多的 Scalastyle 警告。我稍后会调查。

关于maven - 如何在 Jenkins Maven 作业中发布 Scalastyle 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35608354/

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