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

时间:2012-11-26 13:43:41

标签: java ant compiler-construction compiler-warnings suppress-warnings

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

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

有办法吗?

4 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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”类型警告,参见this Bug ID。但是,它应该可以使用-XDignore.symbol.file的(未记录的)javac命令行选项(参见例如bug 6544224)。

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

干杯,

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

@SuppressWarnings添加到您的班级定义中。例如:

@SuppressWarnings
public class MyClass {
}

您可以通过传递字符串参数来抑制特定警告:@SuppressWarnings("unchecked")。请参阅What is the list of valid @SuppressWarnings warning names in Java?获取列表。