将null作为varargs参数发送时,Gradle和Maven的行为不同

时间:2019-04-02 09:23:50

标签: maven gradle compiler-warnings variadic-functions

我正在进行单元测试,以检查接收String变量的函数。

在函数中,我正在检查发送的参数是否为空:

public static String generate(String... input) {
        if (input == null) {
            LOGGER.warn("Input is null for CheckSumGenerator");
            return null;
        }
     // Other not relevant code here
}

单元测试:

String checkSum2 = CheckSumGenerator.generate(null);
Assert.assertEquals(checkSum2, null);

使用Maven作为构建工具时-运行正常。通过了 当将项目更改为使用gradle运行时,构建打印警告显示为红色:

  

警告:参数类型不精确的varargs方法的非varargs调用   最后一个参数

问题是为什么gradle打印它而maven不是?

1 个答案:

答案 0 :(得分:1)

maven编译器插件默认配置为忽略警告

https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#showWarnings

  

<showWarnings>设置为true以显示编译警告。

Type: boolean
Since: 2.0
Required: No
User Property: maven.compiler.showWarnings
**Default: false**

另一方面,Gradle默认显示它们。 You can turn them off