package com.doit.util;
import org.apache.tools.ant.BuildEvent;
import org.apache.tools.ant.BuildListener;
public class MyListener implements BuildListener {
@Override
public void buildFinished(BuildEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void buildStarted(BuildEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void messageLogged(BuildEvent arg0) {
// TODO Auto-generated method stub
}
long t1Start = 0;
long t2Start = 0;
long t3Start = 0;
@Override
public void targetFinished(BuildEvent be) {
String name = be.getTarget().getName();
if ("t1".equals(name)) {
System.out.println(name+" spend "
+ (System.currentTimeMillis() - t1Start));
}
if ("t2".equals(name)) {
long t = System.currentTimeMillis() ;
System.out.println("at "+t+" " +name+" spend "
+ (t - t2Start));
}
if ("t3".equals(name)) {
long t = System.currentTimeMillis() ;
System.out.println("at "+t+" "+name+" spend "
+ (t - t3Start));
}
}
@Override
public void targetStarted(BuildEvent be) {
String name = be.getTarget().getName();
if ("t1".equals(name)) {
t1Start = System.currentTimeMillis();
}
if ("t2".equals(name)) {
t2Start = System.currentTimeMillis();
System.out.println(name+" started at "
+ (t2Start));
}
if ("t3".equals(name)) {
t3Start = System.currentTimeMillis();
System.out.println(name+" started at "
+ (t3Start));
}
}
@Override
public void taskFinished(BuildEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void taskStarted(BuildEvent arg0) {
// TODO Auto-generated method stub
}
}
分享到:
相关推荐
* -listener classname: 添加一个项目监听器 * -buildfile file: 使用指定的 buildfile * -find file: 在上级目录中寻找 buildfile * -Dproperty=value: 设定属性的值 5. 编写 build.xml Ant 的 buildfile 是用 ...
- `-logger`和`-listener`允许自定义日志记录器和监听器。 - `-Dproperty=value`设置系统属性,可以在构建文件中使用。 构建文件`build.xml`的结构通常包含`<project>`、`<target>`、`<taskdef>`、`<property>`等...
此外,Ant 还支持自定义任务,使得用户可以根据项目需求扩展其功能。 #### 三、Java 代码调用 Ant 的原理 在 Java 代码中调用 Ant 主要是通过 Apache Ant 的 API 来实现的。具体来说,主要涉及以下几个步骤: 1. ...
除了内置任务外,Ant 还支持通过 Java 类来定义自定义任务。用户可以编写自己的任务类,并将其添加到构建过程中。 #### 八、案例分析 假设有一个简单的 Java 应用程序需要构建,包含以下步骤: 1. 清理输出目录。...
综上所述,《Ant权威指南》涵盖了Ant从基础到高级的各个方面,包括安装配置、构建文件的编写、DataType的使用、自定义任务的开发以及监听器的运用。通过深入学习这本书,读者将能够熟练掌握Ant,从而高效地管理Java...
总的来说,Ant是Java开发者的重要工具之一,尤其对于那些需要自定义构建流程或与遗留系统交互的项目,Ant的灵活性和强大功能使其成为理想的选择。通过深入理解和熟练使用Ant,开发者可以提高构建效率,确保软件项目...
- `<presetdef>` 和 `<typedef>` 用于自定义任务和宏定义,增加构建的灵活性。 6. 日志和调试 - Ant 提供了各种日志级别(如 `-verbose` 和 `-debug`),以及日志输出控制(如 `-logfile` 和 `-logger`),便于...
Ant提供了许多内置的任务,同时也支持自定义任务。 2. **Target**:目标是一系列相关任务的集合,它们按照一定的顺序执行。一个目标可以依赖于其他目标,Ant会根据依赖关系自动执行前置目标。 3. **Property**:...
通过Ant,你可以轻松地定制你的构建流程,添加自定义任务,使用条件语句和循环结构来控制流程,甚至可以通过Ant的`<antcall>`任务调用其他构建文件。此外,Ant还支持外部工具的集成,例如Maven、Gradle等,使得项目...
- `-listener classname` 添加项目监听器实例 - `-buildfile file` 指定构建脚本 - `-find file` 在文件系统中查找构建脚本 - `-Dproperty=value` 设置属性值 ##### 示例 - 执行当前目录下的 `build.xml` 构建文件,...
它支持多项目构建,并能与其他构建系统如Maven或Ant互操作。 3. **布鲁克(Brooklyn)**: 在这个上下文中,"布鲁克"可能指的是Apache Brooklyn,这是一个开源的应用程序管理框架。它允许开发者定义、部署和管理...
这一章可能涉及的是如何利用JSP和Servlet技术创建可复用的组件,如过滤器(Filter)、监听器(Listener)等。这些基础构件可以提升应用的模块化和可扩展性,同时降低代码的复杂度。学习这部分内容有助于开发者构建...
17-5 JavaMail 范例程序四——传送自定义内容的邮件 第十八章 Web 架构—— MVC 18-1 MVC(Model - View - Controller) 的介绍 18-2 Model 1 与 Model 2 的介绍 18-3 Model 1 和 Model 2 的范例程序 附录A 安装 ...
此外,还介绍了如何创建自定义JSP标签以及使用批处理文件或Ant进行自动化构建的过程。这些基础知识对于JavaWeb开发来说是非常重要的。接下来,我们将在后续章节中深入探讨Servlet、JSP等相关技术。
- **监听器(Listener)**:用于显示测试结果,如图表或日志记录。 - **定时器(Timer)**:控制请求之间的间隔时间。 - **断言(Assertion)**:验证响应数据是否符合预期。 - **配置元素(Config Element)**:...
ReportNG还支持一些其他特性,例如自定义报告样式、添加测试用例的图标来表示状态、嵌入测试方法的执行时间等。这些功能可以通过配置ReportNG监听器或扩展ReportNG的源代码来实现。 总的来说,ReportNG是一个非常...
在导入Eclipse之前,我们需要配置好Java开发环境,并确保已经安装了Apache Ant,因为Tomcat7的构建过程依赖于Ant。下载解压后的`apache-tomcat-7.0.88-src`,将其导入Eclipse作为Java项目。在Eclipse中,可以通过...
5. **Listener API**:控制服务器监听的网络端口和协议,如`Listener.setPort()`设置监听端口,`Listener.setType()`设置监听类型(TCP或SSL)。 通过这些API,开发者可以构建自定义的FTP服务器逻辑,比如实现自动...
3. **监听器(Listener)**:收集并展示测试结果,如聚合报告、视图结果树、响应时间图等。 4. **断言(Assertion)**:验证服务器响应,确保服务行为符合预期。 5. **定时器(Timer)**:控制采样器的执行间隔,...