Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 完成时执行目标_Java_Ant - Fatal编程技术网

Java 完成时执行目标

Java 完成时执行目标,java,ant,Java,Ant,当执行完成时,有没有办法执行目标?我有一组目标,每个目标都可以从命令行调用。执行完成后,我需要执行一些清理目标 我可以使用antcall,但是为每个目标编写一个是很麻烦的。还有更方便的方法吗?有关于stackoverflow的问题。所以一般来说,是的,你有两种可能: 使用antcall 创建另一个目标,该目标取决于您和您的“干净”目标 关于antcall的可用性:您需要能够指定在哪个目标之后执行此目标,无论如何您都无法避免它。这是另一种方法 编写自定义ant任务,其中: 扩展Ant的任务,实

当执行完成时,有没有办法执行目标?我有一组目标,每个目标都可以从命令行调用。执行完成后,我需要执行一些清理目标

我可以使用
antcall
,但是为每个目标编写一个是很麻烦的。还有更方便的方法吗?

有关于stackoverflow的问题。所以一般来说,是的,你有两种可能:

  • 使用
    antcall
  • 创建另一个目标,该目标取决于您和您的“干净”目标

关于antcall的可用性:您需要能够指定在哪个目标之后执行此目标,无论如何您都无法避免它。

这是另一种方法

编写自定义ant任务,其中:

扩展Ant的
任务
,实现
BuildListener
SubBuilderListener
接口

public class ListenerTask extends Task implements SubBuildListener {
}
buildFinished
方法中调用指定的目标(或直接用Java编写清理代码)

@Override
public void buildFinished(BuildEvent be) {
    Target target = (Target)getProject().getTargets().get("Name-To-Your-CleanUp-Target");
    // run the target
    target.performTasks();
}
当然,在构建的一开始就将自己注册到项目中

@Override
public void execute() throws BuildException {
    // addBuildListener will check if the listener has been added
    getProject().addBuildListener(this);
}

最简单的方法是有一个执行所需执行序列的默认目标

<project name="demo" default="build">
    ..
    ..
    <target name="build" depends="init, do-something, do-something-else, clean"/>

</project>

..
..