maven - 将 CodeNarc 与 Maven 结合使用

标签 maven groovy jenkins rules codenarc

我正在尝试将 CodeNarc 与基于 Maven 的 Groovy 项目集成。 CodeNarc Maven 插件网站上的文档很少。我试图了解的使用方面是:

  • 如何指向自定义规则集以及将它们放置在项目中的何处?
  • 如果违反任何规则,如何使 Jenkins 构建失败。

目前我可以使用命令运行 C​​odeNarc

mvn codenarc:codenarc

当我将“报告”部分添加到 POM 文件中(如 http://www.mojohaus.org/codenarc-maven-plugin/usage.html 中所述)并运行时

mvn site

未生成 CodeNarc 报告。我收到此警告

[WARNING] No URL defined for the project - decoration links will not be resolved

但是并不清楚它与CodeNarc有什么关系。

将 CodeNarc 与 Maven 结合使用的正确方法是什么?

最佳答案

我刚刚做到了,以防万一您仍然需要提示。您可以通过在“build”->“plugins”->“plugin”下创建“plugin”条目来 Hook 插件的执行。这是我所拥有的。

<build>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>codenarc-maven-plugin</artifactId>
      <version>0.18-1</version>
      <configuration>
        <sourceDirectory>${project.basedir}/src/main/groovy</sourceDirectory>
        <maxPriority1Violations>0</maxPriority1Violations>
        <maxPriority2Violations>0</maxPriority2Violations>
        <maxPriority3Violations>0</maxPriority3Violations>
      </configuration>
      <executions>
        <execution>
          <phase>prepare-package</phase>
          <goals>
            <goal>codenarc</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
    ...
  </plugins>
</build>

注意“maxPriority_Violations”值。这就是在发生违规时导致构建失败的原因。

我不使用任何自定义规则,但似乎您可以通过设置“rulesetfiles”配置选项来定义自己的规则。请参阅此处的配置选项:http://www.mojohaus.org/codenarc-maven-plugin/codenarc-mojo.html

具有此配置的项目示例:https://github.com/tveronezi/faceid/tree/master/faceid-web

关于maven - 将 CodeNarc 与 Maven 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14383239/

相关文章:

maven - Grails版本插件Maven部署不会始终更新maven-metadata.xml中的<latest>标签

maven - 如何只编译Hadoop的压缩模块?

java - 如何将 JUnit 测试类中的一个方法的回滚设置为 false?

jenkins - 如何在Jenkins工作区中收集所有Gradle依赖项

android - 包上传到 Bintray 但 Gradle 解析失败

Hibernate 不使用 Maven 和 Spring-mvc 创建表

java - 比较两个顺序不同的数组

java - Scanner 类的问题

jenkins - 无法在 https 上启动 Jenkins

linux - Jenkins (linux) 和 EnvInject on node (Windows) 文件访问