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

时间:2016-02-24 16:57:35

标签: maven jenkins publish scalastyle

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

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

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

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

1 个答案:

答案 0 :(得分:3)

在尝试了一些事情之后,我找到了解决方案。我需要的只是我的多模块项目的根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 - &gt;部分中给出 scalastyle:check 目标。 目标和选项,例如

clean install scalastyle:check 

构建设置下,勾选复选框发布Checkstyle分析结果

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

更新:我错了。詹金斯确实拿起我的自定义规则。尽管如此,它显示出比IntelliJ更多的Scalastyle警告。我稍后会对此进行调查。