2

我想忽略特定文件引发的来自 ant 的警告。

为什么有警告不是强制性的,我只想找到一种方法来忽略任何形成特定类文件的警告。

有没有办法做到这一点?

4

4 回答 4

5
<target name="compile">
    <mkdir dir="${classes.dir}" />
    <javac
        classpathref="project.classpath"
        bootclasspath="${javac.bootclasspath}"
        compiler="${javac.compiler}"
        debug="${javac.debug}"
        deprecation="${javac.deprecation}"
        destdir="${classes.dir}"
        fork="${javac.fork}"
        memoryMaximumSize="${javac.memoryMaximumSize}"
        nowarn="${javac.nowarn}"
        srcdir="${source.dir}"
        source="${javac.source}"
        target="${javac.target}"
        encoding="UTF-8"
    >
        <compilerarg value="-XDignore.symbol.file"/>

    </javac>
</target>
于 2015-10-23T21:52:42.243 回答
2

我认为您的意思是“在运行 Ant 脚本时抑制来自 javac 的编译警告”?

您没有提供警告示例,但通常您可以查看@SuppressWarnings注释。可悲"unchecked"的是,只有 JLS 需要,而所有其他都依赖于实现 - 您可以尝试

localhost:~$ javac -X
  -Xlint:{all,cast,deprecation,divzero,empty,unchecked,fallthrough,path,
          serial,finally,overrides,-cast,-deprecation,-divzero,-empty,-unchecked,
          -fallthrough,-path,-serial,-finally,-overrides,none}

查看您选择的 JDK 支持的那些。

编辑:不可能以这种方式抑制“内部专有 API”类型的警告,参见。这个错误 ID。但是,它应该可以使用(未​​记录的)-XDignore.symbol.file命令行选项javac(参见例如错误 6544224)。

真正的解决方案当然是不使用这些 API...

干杯,

于 2012-11-26T13:58:50.153 回答
0

javac ant 任务具有 nowarn 属性,可在编译时关闭所有警告。但是要使某个特定类的警告静音,您只需修改您的 java 文件。

这里是 http://ant.apache.org/manual/Tasks/javac.html

于 2012-11-26T18:58:13.593 回答
0

@SuppressWarnings添加到您的类定义中。例子:

@SuppressWarnings
public class MyClass {
}

您可以通过传递字符串参数来抑制特定警告,例如:@SuppressWarnings("unchecked")。请参阅Java 中有效的 @SuppressWarnings 警告名称列表是什么?对于一个列表。

于 2012-11-27T02:54:41.753 回答