加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

无论依赖关系如何强制执行最终的ant目标

发布时间:2020-12-14 04:52:13 所属栏目:百科 来源:网络整理
导读:我有一个基本的ant脚本,我将一组文件复制到任何目标之外的目录中.然后,我想在任何/所有目标运行后清理这些文件,而不管依赖性如何.我遇到的主要问题是目标可能是’compile’或’deploywar’所以我不能盲目地从’compile’中调用’cleanUp’目标,因为’deployw
我有一个基本的ant脚本,我将一组文件复制到任何目标之外的目录中.然后,我想在任何/所有目标运行后清理这些文件,而不管依赖性如何.我遇到的主要问题是目标可能是’compile’或’deploywar’所以我不能盲目地从’compile’中调用’cleanUp’目标,因为’deploywar’可能会被调用.我不能盲目地从’deploywar’打电话,因为它可能不会被调用.如何定义在完成所有其他必要目标(失败或成功)后调用的目标?下面的’cleanUpLib’目标是我希望在所有/任何任务执行后调用的目标:

<project name="proto" basedir=".." default="deploywar">
...
<copy todir="${web.dir}/WEB-INF/lib">
    <fileset dir="${web.dir}/WEB-INF/lib/common"/>
</copy>
<target name="compile">
    <!-- Uses ${web.dir}/WEB-INF/lib -->
    ....
</target>

<target name="clean" description="Clean output directories">
    <!-- Does not use ${web.dir}/WEB-INF/lib -->
    ....
</target>

<target name="deploywar" depends="compile">
    <!-- Uses ${web.dir}/WEB-INF/lib -->
    ....
</target>

<target name="cleanUpLib">
    <!-- Clean up temporary lib files. -->
    <delete>
        <fileset dir="${web.dir}/WEB-INF/lib">
            <include name="*.jar"/>
        </fileset>
    </delete>
</target>

解决方法

要在任何/所有目标之后运行目标而不考虑依赖关系,您可以使用构建侦听器或一些try / catch / finally模式,有关详细信息,请参阅:

> https://stackoverflow.com/a/6391165/130683
> https://stackoverflow.com/a/1375833/130683

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读