我有一个相当简单的ant脚本运行我的依赖项我导入到我需要使用Ant编译的类中。排除似乎并不合适。
<property name="dir.src" location="src"/>
<property name="dir.org" location="src\org"/>
<target name="compile" description="compile the source">
<mkdir dir="build"/>
<!-- Compile the java code from ${src} into ${build} -->
<javac listfiles="true" includeantruntime="false" srcdir="${dir.src}" classpath="${dir.src}" destdir="${build} debug="on" >
<include name="src/TaskJob.java" />
<exclude name="${dir.org}" />
</javac>
</target>
编译使用
运行1900个java文件Directory----
---------build.xml
---------+src
-------------+org
-------------TaskJob.java
---------.git
我也在尝试
<dirset id="dirset" dir="${dir.src}">
<include name="src/**.java"/>
<exclude name="src/org/**"/>
</dirset>
然后使用文件名:
<javac exclude="dirset" srcdir="${dir.src} destdir="classes" debug="on" >
<filename name="${dir.src}\TaskJob.java"/>
</javac>
反馈意见。
答案 0 :(得分:1)
您的脚本有以下内容......
<property name="dir.src" location="src"/>
<property name="dir.org" location="src\org"/>
......以及以下......
<javac ... srcdir="${dir.src}" ...>
<include name="src/TaskJob.java" />
<exclude name="${dir.org}" />
</javac>
使用实际值替换属性将提供以下内容......
<javac ... srcdir="src" ...>
<include name="src/TaskJob.java" />
<exclude name="src\org" />
</javac>
src
同时出现在srcdir
和<include>
中。 <include>
将匹配以下TaskJob.java(如果它存在于您的场景中...
Directory----
---------build.xml
---------src
-------------src
-----------------org
-------------TaskJob.java
注意另一个src
目录下是否有src
子目录。
所以,你想要的是以下......
<javac ... srcdir="src" ...>
<include name="TaskJob.java" />
</javac>
不需要<exclude>
元素。只需要<include>
。
答案 1 :(得分:0)
如果要排除org
目录下的所有java文件。
<javac listfiles="true" includeantruntime="false" srcdir="${dir.src}" classpath="${dir.src}" destdir="${build} debug="on" >
<exclude name="org/**" />
<include name="src/TaskJob.java" />
</javac>
有关详细信息和示例,请参阅document of FileSet。