我有一个使用Tycho构建的Eclipse插件代码库。它使用在依赖工件中定义的父POM,该工件指定Checkstyle配置的名称。
我还用checkstyle配置检查了父pom。我已经将Eclipse配置为使用与Maven构建相同的配置文件。
我发现Maven报告列出了Eclipse报告未提及的另一个违规行为。
在我正在查看的特定Java源文件中,Maven报告生成了这个列表:
3: warning: Empty line should be followed by <p> tag on the next line.
8: warning: 'package' should be separated from previous statement.
26: warning: First sentence should be present.
31: warning: First sentence should be present.
34: warning: First sentence should be present.
48: warning: First sentence should be present.
对于相同的源文件,使用相同的Checkstyle配置文件,Eclipse会报告除第一个警告之外的所有文件。
如果重要,这里是文件的前几行,包括第3行:
/*******************************************************************************
* Copyright (c) 2014, 2015 Cisco Systems, Inc. and others. All rights reserved.
* // line 3
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
具有讽刺意味的是,我无法“修复”此警告,因为我们的项目当前指定了许可文件的特定格式,并且在下一行添加“p”违反了该格式。
在任何情况下,我的问题都不是修复警告,它理解为什么Eclipse和Maven使用相同的Checkstyle配置文件在报告的违规行为方面存在差异。
根据我的理解,与此违规相关的类别是“JavadocParagraph”。我的Checkstyle配置文件包含此类别,但它不会覆盖“allowNewlineParagraph”属性。据推测,此属性的默认值为true。这对我来说意味着Maven以某种方式决定将此属性设置为“false”,但Eclpse仍然会看到默认的未指定值“true”。
答案 0 :(得分:2)
您似乎遇到了版本冲突。 Maven Checkstyle插件2.16基于Checkstyle 6.2,而Eclipse插件是最新的,使用Checkstyle 6.16.1(source)。
对 JavadocParagraph 检查(例如6.2中的this one)进行了一些更改,这些更改将出现在Eclipse插件中,但不会出现在Maven版本中。
因此,您有3个选项可以解决此问题: