首页 文章

如何在Jenkins Maven工作中发布Scalastyle结果?

提问于
浏览
3

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

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

我找到了this . 讨论有点令人困惑,但我知道发布Scalastyle结果也适用于Maven工作 .

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

1 回答

  • 2

    在尝试了一些事情后,我找到了解决方案 . 我需要的只是我的多模块项目的根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>
    

    这里的重要部分是$ . 我没有尝试过它,但它没有用 .

    在Jenkins的项目配置中,我在“构建” - >“目标和选项”部分中给出了scalastyle:check目标,例如:

    clean install scalastyle:check
    

    在Build settings下,勾选了Publish Checkstyle分析结果复选框 .

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

    更新:我错了 . 詹金斯确实拿起我的自定义规则 . 然而,它显示出比IntelliJ更多的Scalastyle警告 . 我稍后再研究一下 .

相关问题