Checkstyle插件不在乎外部配置文件中的内容

时间:2019-01-16 20:49:32

标签: java checkstyle

我正在尝试将Maven Checkstyle插件与外部配置文件一起使用。不论是否指定外部配置文件,该插件均可工作,并且checkytle警告会因是否设置了configLocation而有所不同。因此,看起来应该工作正常,但事实并非如此。无论我在外部配置文件中输入什么,似乎都会生成相同的警告。实际上,我可以完全清除该文件,并且似乎没有任何更改。

在pom中:

alloc_prob = pulp.LpProblem("Supplier Allocation Problem", pulp.LpMinimize)

TPC_func = pulp.lpSum(X[s][p]*procCosts[s][p] for s in supplier for p in 
project)
TTC_func = pulp.lpSum(X[s][p]*transCosts[s][p] for s in supplier for p in 
project)
TD_func = pulp.lpSum(X_SEP[c][1]*discountFactor['Bonus / ton [€/t]'][c] for 
c in company)

# Objective function: TPC + TTC - TD -> min
alloc_prob += TPC_func  + TTC_func - TD_func

尝试使用此文件:

https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml

在pom中,如果我将名称更改为“ does_not_exist.xml”,则会报告找不到以下内容的文件:

  

无法在以下位置找到配置文件:did_not_exist.xml

由于它没有以正确的文件名打印此消息,因此它告诉我可以找到具有正确名称(google_checks.xml)的文件。

在文件中:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>3.0.0</version>
    <executions>
        <execution>
            <id>validate</id>
            <phase>validate</phase>
            <configuration>
                <configLocation>google_checks.xml</configLocation>
                <encoding>UTF-8</encoding>
                <consoleOutput>true</consoleOutput>
                <failsOnError>true</failsOnError>
            </configuration>
            <goals>
                <goal>check</goal>
            </goals>
        </execution>
    </executions>
</plugin>

如果将值更改为10,我仍然会收到警告:

  

行长超过100个字符...

我正在跑步:

<module name="LineLength"> <property name="max" value="100"/> <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/> </module>

我尝试将google_checks.xml文件放在项目的根目录和mvn clean verify目录中。两个位置的结果相同。

我最终还是想更改行长和缩进的规则,但是由于它不在乎我在文件中输入的内容,因此我不确定如何执行此操作。关于如何使其尊重外部文件中内容的任何想法?

1 个答案:

答案 0 :(得分:0)

很喜欢,但: 您在问题中设置的configLocation会注入到maven-checkstyle-plugin的CheckstyleViolationCheckMojo#configLocation中,因为此变量是私有变量,因此不会显示在Javadoc上,但已在源文件中进行了说明代码。

此描述指出:

  

此参数解析为资源,URL,然后是文件。如果   成功解决后,将配置内容复制到   $ {project.build.directory} /checkstyle-configuration.xml文件之前   被作为配置传递给Checkstyle。

     

有2个预定义的规则集。

     
      
  • sun_checks.xml:Sun Checks。
  •   
  • google_checks.xml:Google Checks。
  •   

认为正在发生的事情是,它无法正常解析参数,因为google_checks.xml是预定义的规则集,因此 default {{1 }}将被加载。

如果您想使用自己的自定义配置器,则应使用google_checks.xmlgoogle_checks.xml以外的其他名称