标签: errorprone

如何排除易于出错的单元测试?

maven-compiler-plugin:3.8.0:testCompile @ foo-child运行时,线程转储显示容易出错正在一个非常长的时间。我相信有一个容易出错的错误,但是现在我宁愿不要在单元测试上运行容易出错的错误。

我有一个父pom.xml:

<modules>
  <module>foo-child</module>
</modules>
<dependencyManagement>
  <dependency>
    <groupId>com.google.errorprone</groupId>
    <artifactId>error_prone_annotations</artifactId>
  </dependency>
  // also has dependency for io.norberg auto-matter and com.google.auto.value auto-value
</dependencyManagement>
<build>
  <plugins>
     <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        // also has annotationProcessorPaths configuration for auto-matter and auto-value
     </plugin>
  </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

有什么我可以放入foo-child pom.xml中的内容,它可以让我完全排除maven-compiler-plugin:3.8.0:testCompile @ foo-child在运行之外。

我不能完全排除容易出错的原因,因为番石榴之类的其他东西都取决于它。

编辑:好像这个用户正在尝试解决相同的问题。您知道如何将那里提供的解决方案应用于我的案件吗?

java maven-compiler-plugin errorprone

8
推荐指数
1
解决办法
378
查看次数

如何让容易出错的忽略我生成的源代码?

我最近发现了Error Prone ,并使用其页面上链接的Gradle 插件将其集成到我的 Android 构建中。

由于我们的项目使用 Icepick(以及其他一些生成注释处理器的代码),因此我们生成了源代码,并对其进行编译。不幸的是,某些生成的代码会触发 Error Prone 中的警告,我想过滤掉该噪音不知何故。

生成的代码显示在app/build/generated/source/apt/debug目录中。我怎样才能使这段代码免遭Error Prone 严厉的目光呢?

java android gradle errorprone

7
推荐指数
1
解决办法
3656
查看次数

在Java代码中禁止方法签名后使用括号

在我最近的项目中,我遇到了编译完全正常的代码,但对任何读者来说都是非常令人惊讶的,不应该通过静态分析.

class BracketsAfterMethodSignature {
  Object emptyArray()[] {
    return new Object[]{};
  }
}
Run Code Online (Sandbox Code Playgroud)

我们使用Checkstyle,PMD,ErrorProne和SonarLint,但这些工具都没有抱怨这样的构造.是否有可以启用的规则或可用于阻止此类代码的工具?

显然,Checkstyle的ArrayTypeStyle不包括这种情况.

java checkstyle pmd errorprone sonarlint

6
推荐指数
1
解决办法
132
查看次数

什么是 Javadoc 摘要片段?

我正在尝试遵守Error Prone建议的Java 样式指南

\n

第 7.2 节摘要片段说明如下:

\n
\n

每个 Javadoc 块都以一个简短的摘要片段开始。该片段非常重要:它是文本中出现在某些上下文(例如类和方法索引)中的唯一部分。

\n
\n
\n

这是一个片段\xe2\x80\x94名词短语或动词短语,不是一个完整的句子。它不是以 A {@code Foo} is a... 开头,或者 This method returns... ,也没有形成像 Save the record. 这样的完整祈使句。但是,该片段是大写的并带有标点符号,就好像它是一个完整的句子。

\n
\n

这是我想知道的:

\n
    \n
  • 摘要片段到底是什么?据说每个 Javadoc 块都以它开头并且它是文本,但是是否有更多文档可供我阅读以更好地理解它?
  • \n
  • 为什么摘要片段非常重要?据说它出现在类和方法索引中,但我不确定我是否理解这意味着什么或为什么它很重要。我最好的猜测是,这是一种标记类及其成员的方法,以便更容易搜索它们。
  • \n
  • 我在哪里可以找到并阅读摘要片段?我正在使用 IntelliJ IDEA,因此我知道如何通过检查访问代码中的类和成员的 Javadoc,但是有没有办法列出所有可用的摘要片段?
  • \n
\n

java javadoc errorprone

6
推荐指数
1
解决办法
3981
查看次数

Google容易出错的Java编译器-Maven构建期间的错误:java.lang.NoSuchFieldError:pid

我已将以下内容添加到pom文件中:

<!-- Source: http://errorprone.info/docs/installation -->
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <compilerId>javac-with-errorprone</compilerId>
                <forceJavacCompilerUse>true</forceJavacCompilerUse>
                <!-- maven-compiler-plugin defaults to targeting Java 5, but our javac
                     only supports >=6 -->
                <source>8</source>
                <target>8</target>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.codehaus.plexus</groupId>
                    <artifactId>plexus-compiler-javac-errorprone</artifactId>
                    <version>2.5</version>
                </dependency>
                <!-- override plexus-compiler-javac-errorprone's dependency on
                     Error Prone with the latest version -->
                <dependency>
                    <groupId>com.google.errorprone</groupId>
                    <artifactId>error_prone_core</artifactId>
                    <version>2.0.4</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

在Maven全新安装期间,哪个导致:

An annotation processor threw an uncaught exception.
Consult the following stack trace for details.
java.lang.NoSuchFieldError: pid
    at lombok.javac.JavacAST.packageDeclaration(JavacAST.java:107)
    at lombok.javac.JavacAST.<init>(JavacAST.java:81)
    at …
Run Code Online (Sandbox Code Playgroud)

java lombok errorprone

5
推荐指数
1
解决办法
1827
查看次数

从Guava 19升级到20时的编译错误

尝试将番石榴从版本19升级到20并收到此错误:

Error:java: cannot access com.google.errorprone.annotations.CanIgnoreReturnValue
  class file for com.google.errorprone.annotations.CanIgnoreReturnValue not found
Run Code Online (Sandbox Code Playgroud)

任何想法如何解决它?我的项目中没有任何对errorprone的引用.在errorprone下面添加依赖项无济于事:

        <groupId>com.google.errorprone</groupId>
        <artifactId>error_prone_annotations</artifactId>
Run Code Online (Sandbox Code Playgroud)

java guava errorprone

5
推荐指数
1
解决办法
1248
查看次数

为什么要在Android Studio中使用容易出错的插件

我最近在Android-Studio中安装了容易出错的插件,并按照其网站上的说明配置了设置。

该插件工作正常,但我注意到在编译时,易错插件显示的任何错误已由编辑器中的Lint工具突出显示。

所以我想知道为什么我应该在Android-studio中使用容易出错的功能。或关于容易出错或Lint工具的细节我不知道。

lint errorprone android-studio-2.2

5
推荐指数
0
解决办法
974
查看次数

禁用 bazel 中容易出错的选项

我有一个包含大量代码的项目。其中一些代码未通过 Bazel 默认打开的容易出错的检查。我想禁用 bazel 中容易出错的功能。是否可以在不通过 WORKSPACE 文件添加命令行参数的情况下完成此操作?

PS 通过命令行禁用效果很好

bazel errorprone

5
推荐指数
1
解决办法
1622
查看次数

Checker Framework 可以与 Error Prone 一起使用吗?

Checker 框架可以与 Error Prone 一起使用吗?据我所知,它们在编译时检查方面具有重叠的目的,但它们并不做所有相同的事情。我使用 gradle,但我怀疑这两个插件是否可以同时使用(事实上有一个未解决的错误)。如果在命令行上手动执行此操作,我如何在一次javac调用中针对文件运行检查器和易出错的操作?

java checker-framework errorprone

5
推荐指数
1
解决办法
559
查看次数