特定类文件的 Ant 编译器警告

问题描述 投票:0回答:4

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

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

有办法做到吗?

java ant compiler-warnings suppress-warnings
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>

2
投票

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

您没有提供警告示例,但通常您可以查看 @SuppressWarnings 注释。遗憾的是,JLS 仅需要

"unchecked"
,而所有其他都依赖于实现 - 您可以尝试

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
应该可以实现(参见例如。bug 6544224)。

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


0
投票

就这样

http://ant.apache.org/manual/Tasks/javac.html


0
投票
@SuppressWarnings

添加到您的类定义中。 示例: @SuppressWarnings public class MyClass { }

您可以通过传递字符串参数来抑制特定警告:
@SuppressWarnings("unchecked")

。 请参阅

Java 中有效的 @SuppressWarnings 警告名称列表是什么?
获取列表。

© www.soinside.com 2019 - 2024. All rights reserved.