以下は、GAE プロジェクトで試している Ant スクリプトですが、war ファイルを調べると、Java ファイルごとに 2 つのクラスが表示されます。
参考までに、WARファイルを作成してwinrarで開きますが、それを抽出しても、winrarは既存のファイルメッセージを置き換えるかどうかを尋ね続けます。同じファイル名と拡張子が 1 つのフォルダーにどのように存在するかわかりません。また、「dist」および「classes」フォルダーを確認しましたが、重複ファイルはありません。
<?xml version="1.0" ?>
<project name="AntExample1" default="war">
<path id="compile.classpath">
<fileset dir="war/WEB-INF/lib">
<include name="*.jar"/>
</fileset>
</path>
<target name="init">
<mkdir dir="build/classes"/>
<mkdir dir="dist" />
</target>
<target name="compile" depends="init" >
<javac destdir="build/classes" debug="true" srcdir="src">
<classpath refid="compile.classpath"/>
</javac>
</target>
<target name="war" depends="compile">
<war destfile="dist/AntExample.war" webxml="war/WEB-INF/web.xml">
<fileset dir="war"/>
<lib dir="war/WEB-INF/lib"/>
<classes dir="build/classes"/>
</war>
</target>
<target name="clean">
<delete dir="dist" />
<delete dir="build" />
</target>
</project>