Ant排除编译java文件的文件

时间:2016-06-09 14:55:06

标签: java ant compiler-errors

我有一个相当简单的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>

反馈意见。

2 个答案:

答案 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