如果在类路径上找不到文件夹,如何使ant不失败

如果在类路径上找不到文件夹,如何使ant不失败,ant,Ant,我正试图修改我的ant脚本,以便无论是否存在本地lib文件夹,它都能毫无错误地生成。我想在多场战争中使用相同的脚本,其中一些战争将有WEB-INF/lib,而另一些战争将没有WEB-INF/lib。如果文件夹存在,请将其包含在类路径中,如果不存在,请不要包含它。我试过放球,但我不知道应该放在哪里。我想这应该比我想象的要简单得多,但我的谷歌浏览器让我失望了 <property name="local.libs" value="WebContent/WEB-INF/lib" /> &l

我正试图修改我的ant脚本,以便无论是否存在本地lib文件夹,它都能毫无错误地生成。我想在多场战争中使用相同的脚本,其中一些战争将有WEB-INF/lib,而另一些战争将没有WEB-INF/lib。如果文件夹存在,请将其包含在类路径中,如果不存在,请不要包含它。我试过放球,但我不知道应该放在哪里。我想这应该比我想象的要简单得多,但我的谷歌浏览器让我失望了

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

我最终解决了这个问题,将local.libs的值设置为WebContent/WEB-INF:

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

然后是文件集

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


然后它将构建lib文件夹是否存在

我最终解决了这个问题,将local.libs的值设置为WebContent/WEB-INF:

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

然后是文件集

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


然后它将构建lib文件夹是否存在

这里的关键点是传入的文件夹存在。include模式对缺少的文件夹(本例中为lib)更为宽松。不幸的是,这种方法不适用于子元素,因为在那里必须有确切的源文件夹。这里的关键点是传入的文件夹存在。include模式对缺少的文件夹(本例中为lib)更为宽松。不幸的是,这种方法不适用于子元素,因为在那里必须有确切的源文件夹。