我试图忽略或CheckStyle的与注释禁用月食一些无用的警告,@SuppressWarnings像
如何禁用特定的CheckStyle规则特定的代码行?
但这对我不起作用.
这是checkstyle.xml
<module name="Checker">
<property name="severity" value="warning"/>
<module name="SuppressWarningsFilter"/>
<module name="TreeWalker">
<property name="tabWidth" value="4"/>
<module name="FileContentsHolder"/>
<module name="SuppressWarningsHolder"/>
<module name="CyclomaticComplexity"/>
...
Run Code Online (Sandbox Code Playgroud)
这里是java代码:
@SuppressWarnings("checkstyle:CyclomaticComplexity")
public void doSomeThing() {
...
}
Run Code Online (Sandbox Code Playgroud)
同时设定警告值设置为"所有" @SuppressWarnings("all")或者@SuppressWarnings("CyclomaticComplexity"),@SuppressWarnings("cyclomaticcomplexity")是没有任何结果.
checkstyle的文档很差.一些想法?
我们的项目包含几个类,我们有Eclipse生成的equals()和hashCode()方法(右键单击 - >源代码 - >生成hashCode()和equals()).
例:
Run Code Online (Sandbox Code Playgroud)@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; final MyTO other = (MyTO) obj; if (num != other.num) return false; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; if (table == null) { if (other.table != null) return false; } else if (!table.equals(other.table)) return false; return true; }
这些方法适用于我们的应用程序,但遗憾的是没有通过Checkstyle的圈复杂度检查.由于这些方法是自动生成的,因此我们不关心它们的复杂性.我们可以从Checkstyle中抑制整个类,但我们希望能够排除这两种方法. …
我正在使用Eclipse的CheckStyle插件.
它非常适合在99%的时间内找到我不想要的东西,但是我实际上只有1%的时间打算故意违反规则,我想让CheckStyle知道它不需要关注标记警告.
示例:缺少Javadoc注释规则.大多数时候我都希望Javadoc对我的方法发表评论.但是,方法如:
public boolean isValid() {
return valid;
}
Run Code Online (Sandbox Code Playgroud)
没有人可能会过得很快.
是否有类似@SuppressWarnings注释可用于将特定的CheckStyle规则违规标记为可接受的?可能是某种特殊格式的评论?我不想禁用该规则,我只想忽略特定的违规行为.
(我知道在这种情况下我可以编写Javadoc注释,但在其他情况下修复规则违规并不是那么简单).
我有一个checkstyle.xml,看起来像这样:
<module name="Checker">
....
<module name="SuppressionCommentFilter">
<property name="offCommentFormat" value="CSOFF\: ([\w\|]+)"/>
<property name="onCommentFormat" value="CSON\: ([\w\|]+)"/>
<property name="checkFormat" value="$1"/>
</module>
<module name="TreeWalker">
<module name="LineLength">
<property name="max" value="200"/>
</module>
....
</module>
</module>
Run Code Online (Sandbox Code Playgroud)
在我的一个课程中,我有一个超过200个字符的行,并在其周围添加以下内容:
// CSOFF: LineLength
...
// CSON: LineLength
Run Code Online (Sandbox Code Playgroud)
然而,作为checkstyle的一部分,这条线不会被忽略.
我在pom.xml中指定了以下内容:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.6</version>
<configuration>
<configLocation>checkstyle.xml</configLocation>
</configuration>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
并执行此:
mvn checkstyle:checkstyle
Run Code Online (Sandbox Code Playgroud) PMD有一种方法可以忽略//NOPMDJava源文件中的注释特定警告.
Checkstyle有类似的选择吗?
在为一段代码关闭Checkstyle时,是否存在仅抑制特定检查的语法.
所以而不仅仅是
// CHECKSTYLE:OFF
代码
// CHECKSTYLE:ON
你可以有类似的东西
// CHECKSTYLE:OFF:RequireThis,
code
// CHECKSTYLE:ON
如果我们故意对样式进行例外处理,那么更清楚的是异常案例是什么.
是的,我看到了这个问题:
但我无法发表评论,我想问是否可以做OP所要求的:
如何为一行代码禁用一个特定规则
我也看到了这个: 有没有办法迫使Checkstyle忽略源代码中的特殊警告?
我想我的问题的答案是使用 SuppressWithNearbyCommentFilter
我只是不明白我在java中的评论应该是什么样的.
说我有以下代码:
public class MyDataContainer {
/** the name */
public String name;
}
Run Code Online (Sandbox Code Playgroud)
我想摆脱"可见性修饰符"警告,只有那个警告.
我需要启用什么(使用eclipse--cs.sf.net插件)?
我的评论如何看待?
我设法启用了Suppresion Comment Filter并将我的整个课程包围起来
//CHECKSTYLE:OFF
//CHECKSTYLE:ON
Run Code Online (Sandbox Code Playgroud)
但我真的不喜欢这个解决方案.
当我有一个没有 javadoc 的公共方法时,Checkstyle 会发出警告,这很好!当我覆盖一个公共方法时,我没有收到警告,因为 javadoc 在该方法的父类中已经可用。
例如,现在我的方法有另一个注释@MyEvent。现在我确实收到了警告但不想要它,因为注释说得够多了。我可以排除带有特定注释的方法的警告吗?
有一些解决方案涉及在我的代码中添加类似@SuppressWarnings或注释之类的东西,// CHECKSTYLE.OFF但这并没有使我的代码更好,我可以改为添加 javadoc。所以我正在寻找配置级解决方案。
我可以禁用Checkstyle警告吗?
缺少package-info.java文件。
我的IDE是IntelliJ IDEA。
我有一个超过 2000 行的 java 类,并且我将 Checkstyle 配置为允许最多 2000 行。我只想为一个文件覆盖此 Checkstyle 属性。我怎样才能做到这一点?
在我的团队中,我们使用checkstyle来提高我们的编码标准,但现在我们遇到了一个可以改进的规则.
空块规则向我们发出关于空catch块的警告(没有java代码且没有注释),但是如果块包含注释,则使用标准配置它也会生成警告.
例如
这两个不应该导致警告:
try {
// some code
} catch (NumberFormatException ignore) {
// ignore
}
try {
// some code
} catch (NumberFormatException e) {
logger.debug("some debug");
}
Run Code Online (Sandbox Code Playgroud)
这应该会引发警告:
try {
// some code
} catch (NumberFormatException ignore) {
}
Run Code Online (Sandbox Code Playgroud)
如果catch块中没有注释且没有java代码,我们如何才能改进checkstyle以仅向我们发出警告?
我找了一个解决方案,但我stackoverflow和谷歌没有任何.
有人能帮我吗?
Checkstyle 抱怨枚举值没有附加的 javadoc 注释。但至少在我的许多枚举中,由于值本身通常是不言自明的,因此添加 javadoc 似乎只是降低了可读性并带来了不必要的混乱。考虑以下示例:
/**
* Example enum to illustrate the problem. Each value of this
* enum represents a day of the week.
*/
public enum DaysOfWeekClean {
SUNDAY,
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY;
}
Run Code Online (Sandbox Code Playgroud)
/**
* Example enum to illustrate the problem. Each value of this
* enum represents a day of the week, with comments added to each
* distinct value to make the point.
*/
public enum DaysOfWeekCluttered {
/**
* The day …Run Code Online (Sandbox Code Playgroud) checkstyle ×12
java ×10
eclipse ×4
annotations ×1
equals ×1
hashcode ×1
maven ×1
suppression ×1