在 ant build 中排除文件

jgr*_*208 1 java ant

我有以下蚂蚁文件,

<project>
<path id="build-classpath">
    <fileset dir="/opt/apache-tomcat-7.0.53/lib">
        <include name="*.jar"/>
    </fileset>
    <fileset dir="../../lib">
       <include name="*.jar"/>
    </fileset>
    <fileset dir="../../bin">
       <include name="*.jar"/>
    </fileset>
</path>
<target name="compile">
  <mkdir dir="classes"/>
  <mkdir dir="bin"/>
  <javac srcdir="src/" destdir="classes" includeantruntime="false">
    <exclude name="/src/web/DaemonSocket.java"/>
    <classpath refid="build-classpath"/>
  </javac>
  <javac srcdir="src/" destdir="bin" includeantruntime="false">
    <classpath refid="build-classpath"/>
  </javac>
</target>
 <target name="clean">
    <delete dir="classes"/>
    <delete dir="bin"/>
  </target>
</project>
Run Code Online (Sandbox Code Playgroud)

在带有代码的排除行中,

  <javac srcdir="src/" destdir="classes" includeantruntime="false">
    <exclude name="/src/web/DaemonSocket.java"/>
    <classpath refid="build-classpath"/>
  </javac>
Run Code Online (Sandbox Code Playgroud)

我希望文件DaemonSocket.java不会被编译到classes文件夹中。但是,每次运行时ant compile,该DaemonSocket.java文件都会编译到classesbin文件夹中。为什么exclude在这种情况下可能不起作用?

SMA*_*SMA 5

尝试通配符:

  <javac srcdir="src/" destdir="classes" includeantruntime="false">
    <exclude name="**/DaemonSocket.java"/> <!--You should use relative path here /src/ should be removed if you dont want to use wildcard-->
    <classpath refid="build-classpath"/>
  </javac>
Run Code Online (Sandbox Code Playgroud)