2013-02-28 40 views
1

我想修改我的ant腳本,以便它將生成沒有錯誤是否存在本地lib文件夾。我想在多次戰爭中使用相同的腳本,其中一些將具有WEB-INF/lib,其中一些不會。如果該文件夾存在,請將其包含在類路徑中,如果沒有,請不要包含它。我嘗試過,但我無法弄清楚它應該去哪裏。我認爲這應該比我做出來要簡單得多,但是我的Googl Fu讓我失望了。如何使ant不會失敗,如果沒有找到類路徑上的文件夾

<property name="local.libs" value="WebContent/WEB-INF/lib" /> 
<path id="local.libs.path"> 
<fileset dir="${local.libs}" includes="*.jar" /> 
</path> 
<target name="compile"> 
    <mkdir dir="${build.classes.dir}"/> 
    <javac srcdir="${src.java.dir}" destdir="${build.classes.dir}" debug="true" includeantruntime="false"> 
     <compilerarg value="-Xlint:-path" /> 
     <classpath refid="local.libs.path" /> 
        <classpath refid="server.libs.path" /> <!-- not referenced in snippet --> 
    </javac> 
</target> 

回答

1

我最終通過使local.libs剛剛的WebContent/WEB-INF的價值解決這個:

<property name="local.libs" value="WebContent/WEB-INF" /> 

,然後將文件集

<fileset dir="${local.libs}" includes="*lib/*.jar" /> 

然後,它是否建立或者不存在lib文件夾。

+0

這裏的關鍵是傳入的文件夾*存在。包含模式對缺少文件夾(在這種情況下爲lib)更爲寬鬆。 不幸的是,這種方法不適用於子元素,因爲它必須具有確切的源文件夾。 – mgaert 2013-12-13 11:28:13

相關問題