标签: checkstyle

Maven Checkstyle configLocation被忽略了吗?

尝试根据apache站点上的指导原则在 maven pom中设置自定义checkstyle配置在一个非常简单的情况下不起作用.

我创建了一个项目MyProject,使用Maven推荐的目录布局(即src/main/java /,src/main/resources),单个文件MyClass.java:

package com.myproject;

public class MyClass {

   public static void main(String[] args) {
      System.out.println("This line is longer than 80 characters which returns an error in sun_checks.xml, however my_checks.xml allows for much longer lines and will not return a long line error.");
   }
}
Run Code Online (Sandbox Code Playgroud)

一个空的checkstyle文件,my_checks.xml:

<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
    "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
    "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">

<module name="Checker">
    <property name="severity" value="warning"/>
    <module name="TreeWalker">
    </module>
</module>
Run Code Online (Sandbox Code Playgroud)

和根据指南中的规格的pom文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.myproject</groupId>
    <artifactId>A_Project</artifactId>
    <name>A Project</name> …
Run Code Online (Sandbox Code Playgroud)

checkstyle maven

16
推荐指数
2
解决办法
1万
查看次数

Intellij IDEA内置检测代码与checkstyle,PMD和findbugs

最近我正在寻找最好的代码检查工具集.我的IDE是Intellij 15.0,我知道那里有很好的检查功能,但是当我查看互联网时,我没有找到Intellij内置检查代码和那三个之间的良好比较.试过它们的人是否可以提供一些最佳实践?Intellij是否涵盖所有这些?

我知道findbugs以二进制级别运行但仍然让它保持比较.

java findbugs intellij-idea checkstyle code-inspection

16
推荐指数
1
解决办法
3200
查看次数

如何在CheckStyle中禁止警告?

我正在使用Eclipse的CheckStyle插件.

它非常适合在99%的时间内找到我不想要的东西,但是我实际上只有1%的时间打算故意违反规则,我想让CheckStyle知道它不需要关注标记警告.

示例:缺少Javadoc注释规则.大多数时候我都希望Javadoc对我的方法发表评论.但是,方法如:

public boolean isValid() {
  return valid;
}
Run Code Online (Sandbox Code Playgroud)

没有人可能会过得很快.

是否有类似@SuppressWarnings注释可用于将特定的CheckStyle规则违规标记为可接受的?可能是某种特殊格式的评论?我不想禁用该规则,我只想忽略特定的违规行为.

(我知道在这种情况下我可以编写Javadoc注释,但在其他情况下修复规则违规并不是那么简单).

java eclipse checkstyle

15
推荐指数
2
解决办法
3万
查看次数

禁用特定java包的所有checkstyle检查

我有两个包

COM/MYDOMAIN/ABC /代表/ XYZ/JAXWS /管理

com/mydomain/abc/xyz/jaxws/managed

我要求只为第二个包禁用checkstyle,因为它们包含自动生成的代理类.

我使用了一个suppress.xml,如下所示

<?xml version="1.0"?>

<!DOCTYPE suppressions PUBLIC
    "-//Puppy Crawl//DTD Suppressions 1.1//EN"
    "suppressions_1_1.dtd">

<suppressions>
       <!-- Suppress JavadocPackage in the test packages -->
       <suppress checks="JavadocPackage" files="[\\/]test[\\/]"/>

    <!-- Suppress all checkstyle for autogenerated jaxws.managed package -->
    <suppress checks="[a-zA-Z0-9]*" files="([^(delegate)])+([a-z]*[\\/]jaxws[\\/]managed[\\/])+"/>
</suppressions>
Run Code Online (Sandbox Code Playgroud)

请注意,禁用JavadocPackage检查的第一次禁止工作正常但第二次没有.我担心我选择包的正则表达可能是错误的.任何帮助深表感谢.

用一个例子说明我的要求:

选择的标准是包名称应该以包名称jaxws.managed包含但不应包含delegate在包名称中.delegate应该jaxws.managed在包名称之前提供更多内容:

例如:com.mycomany.delegate.service.jaxws.managed必须启用包中的checktyle检查,同时com.mycompany.abc.service.jaxws.service必须禁用,并且需要注意的是,除了此模式之外,我不知道所有的pakages名称.

谢谢并问候Sibi

java regex xml checkstyle

14
推荐指数
1
解决办法
2万
查看次数

Checkstyle SuppressionCommentFilter不忽略指定的规则

我有一个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)

java checkstyle maven

13
推荐指数
1
解决办法
4270
查看次数

通过Maven CLI识别CheckStyle错误

我在命令行上通过mvn构建我的项目.

每当发生checkStyle错误时,我都会看到这种类型的输出:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-
plugin:2.4:checkstyle (default) on project myProject-server: 
An error has occurred in Checkstyle report generation. 
There are 2 checkstyle errors. -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

如何找出导致这些CheckStyle失败的代码行?

checkstyle

13
推荐指数
1
解决办法
4747
查看次数

"第一句应以句号结束."

Java checkstyle使我感到困惑和困惑.

package pmain;

/**
 * Some text here.
 */

public class Main {

}
Run Code Online (Sandbox Code Playgroud)

这就是我所拥有的所有代码.Checkstyle显示"第一句应以句号结束".在"/**".

为什么CheckStyle会产生此警告?

我需要使用checkstyle配置吗?难道我做错了什么?"这里有些文字"不是第一句话吗?是"." 不是一个时期?

java checkstyle

13
推荐指数
3
解决办法
3万
查看次数

在Gradle中的Findbugs和Checkstyle插件中使用"排除"配置

我有以下Gradle构建文件:https://github.com/markuswustenberg/jsense/blob/a796055f984ec309db3cc0f3e8340cbccac36e4e/jsense-protobuf/build.gradle其中包括:

checkstyle {
  // TODO The excludes are not working, ignore failures for now
  //excludes '**/org/jsense/serialize/protobuf/gen/**'
  ignoreFailures = true
  showViolations = false
}

findbugs {
  // TODO The excludes are not working, ignore failures for now
  //excludes '**/org/jsense/serialize/protobuf/gen/**'
  ignoreFailures = true
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我正在尝试在org.jsense.serialize.protobuf.gen包中排除自动生成的代码.我无法弄清楚为excludes参数提供的字符串的格式,并且文档没有多大帮助:http://www.gradle.org/docs/1.10/dsl/org.gradle.api.plugins.quality .FindBugs.html#org.gradle.api.plugins.quality.FindBugs:排除(它只是说"排除模式集".).

所以我的问题是:如何为Findbugs和Checkstyle插件格式化排除模式字符串?

我正在运行Gradle 1.10.

谢谢!

编辑1:我得到Checkstyle排除使用以下内容:

tasks.withType(Checkstyle) {
  exclude '**/org/jsense/serialize/protobuf/gen/**'
}
Run Code Online (Sandbox Code Playgroud)

但是,在Findbugs插件上使用完全相同的排除不起作用:

tasks.withType(FindBugs) {
  exclude '**/org/jsense/serialize/protobuf/gen/*'
}
Run Code Online (Sandbox Code Playgroud)

编辑2:接受的答案是有效的,使用XML文件并对其进行过滤也是如此,如下所示:

findbugs {
  excludeFilter = file("$projectDir/config/findbugs/excludeFilter.xml")
}
Run Code Online (Sandbox Code Playgroud)

<?xml version="1.0" …
Run Code Online (Sandbox Code Playgroud)

findbugs checkstyle gradle

13
推荐指数
1
解决办法
1万
查看次数

Maven checkstyle错误:'<T>'的@param标记

我有以下通用类型的方法,但是当我运行maven checkstyle(maven-checkstyle-plugin,2.121)时,它会Expected @param tag for '<T>'在maven构建期间给出错误消息.我该如何克服这个?

/**
 * Read in specified type of object from request body.
 * @param request The HttpServletRequest
 * @param expected The expected type T
 * @return <T> specified type of object
 */
public <T extends Object> T getExpectedValue(
    final HttpServletRequest request, final Class<T> expected)
Run Code Online (Sandbox Code Playgroud)

我使用以下来关闭泛型param标签,但它没有用,我也有上面提到的java doc.

<module name="JavadocType">
    <property name="allowMissingParamTags" value="true"/>
</module>
Run Code Online (Sandbox Code Playgroud)

java generics javadoc checkstyle maven

13
推荐指数
1
解决办法
7796
查看次数

错误:无法初始化模块TreeWalker - 无法实例化JUnitTestCase

将maven项目导入Eclipse Luna后,在修改方法后保存时弹出窗口中会显示以下错误:

无法初始化模块TreeWalker - 无法实例化JUnitTestCase

JUnitTestCase指的是checkstyle xml文件中的模块:

<module name="JUnitTestCase"/>
Run Code Online (Sandbox Code Playgroud)

我安装了'M2Eclipse的Checkstyle配置插件'和'Checkstyle Plug-in 6.4.0'.我的pom文件中"maven-checkstyle-plugin"的插件定义指定版本2.10.

注意:我意识到这与其他一些具有相同错误的问题类似(但是指定了不同的模块)但是我还没有找到令人满意的解决方案.我相信我可以删除checkstyle配置文件中的模块条目,但我要求它按设计工作,这不是更好的选择.

java eclipse checkstyle maven

12
推荐指数
1
解决办法
1万
查看次数