我正在尝试将 CodeNarc 集成到基于 maven 的项目中,但我一直遇到问题。我想使用自定义规则集,当违反规则时,我希望我的 Maven 构建失败。
如何配置 codenarc 以便在运行以下命令时违反规则导致失败?
mvn clean install
此外,在 POM 中配置 CodeNarc 的文档没有解释如何引用我的自定义规则集的位置。关于如何设置的任何建议?谢谢!
当我使用以下配置运行 mvn clean install 时(根据我的规则集,我有一个公然违规的 groovy 文件)
我的构建成功了。:(
我尝试引用我自己的规则集,但没有产生任何违规行为。我拿走了 POM 中的 rulesetfiles 属性,它开始产生违规行为。(但我不能自己选择)
任何人都知道如何让它真正读取自定义规则集文件?我尝试了 xml 和 groovy。
这是我的 POM 中的规则集和插件配置:
<ruleset xmlns="http://codenarc.org/ruleset/1.0";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://codenarc.org/ruleset/1.0 http://codenarc.org/ruleset-schema.xsd";
xsi:noNamespaceSchemaLocation="http://codenarc.org/ruleset-schema.xsd">;
<description>Dummy rule set</description>
<rule class='org.codenarc.rule.formatting.SpaceAfterIf'>
<property name='priority' value='1'/>
</rule>
<rule class='org.codenarc.rule.basic.EmptyIfStatement'>
<property name='priority' value='1'/>
</rule>
</ruleset>
我在我的 POM 中引用了这个规则集,如下所示:
<groupId>org.codehaus.mojo</groupId> <artifactId>codenarc-maven-plugin</artifactId> <version>0.18-1</version> <configuration> <sourceDirectory>${basedir}/src/test/groovy</sourceDirectory> <maxPriority1Violations>0</maxPriority1Violations> <maxPriority2Violations>0</maxPriority2Violations> <maxPriority3Violations>0</maxPriority3Violations> <rulesetfiles>${basedir}/rulesets/ruleset.xml</rulesetfiles> <xmlOutputDirectory>${basedir}/</xmlOutputDirectory> </configuration> <executions> <execution> <id>execution1</id> <phase>install</phase> <goals> <goal>codenarc</goal> </goals> </execution> </executions>