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タスクには、コンパイル時にすべての警告をオフにするプロパティがあります。ただし、特定の1つのクラスからの警告をミュートするには、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 に答える