【问题标题】:How to make ant not fail if folder on classpath is not found如果找不到类路径上的文件夹,如何使 ant 不失败
【发布时间】:2013-02-28 14:07:17
【问题描述】:

我正在尝试修改我的 ant 脚本,以便无论本地 lib 文件夹是否存在,它都能正确构建。我想在多场战争中使用相同的脚本,其中一些会有 WEB-INF/lib,而另一些则没有。如果该文件夹存在,请将其包含在类路径中,如果不存在,则不要包含它。我试过推杆,但我不知道它应该放在哪里。我认为这应该比我想象的要简单得多,但我的 Googl Fu 让我失望了。

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

【问题讨论】:

    标签: ant


    【解决方案1】:

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

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

    然后是文件集

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

    然后无论 lib 文件夹是否存在,它都会构建。

    【讨论】:

    • 这里的关键是传入的文件夹存在。包含模式对不存在的文件夹(在这种情况下为 lib)更为宽松。不幸的是,这种方法不适用于 子元素,因为那里必须有确切的源文件夹。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 2013-07-25
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    相关资源
    最近更新 更多