簡體   English   中英

ant excludesfile編譯Java文件

[英]Ant excludesfile compiling java files

我有一個相當簡單的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>

反饋表示贊賞。

您的腳本具有以下內容...

<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>是必需的。

如果要排除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>

有關更多詳細信息和示例,您可以閱讀FileSet文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM