本实例主要讲述如何对ant build.xml进行定制,以java方式实现其相关功能,方便进行拓展定制自定义任务
关于最简单的Ant customize例子,网上应该有很多实例,这里直接上一个例子,见资源AntCustomizeTask.rar,可直接下载运行build.xml即可。下面进入正题
一、关于build自带命令java实现,如delete,java,javac,mkDir,zip等
通过读ant.jar源码我们发现,在ant.taskrefs包目录下,存在我们需要的各种实现实例下面以mkdir,javac为例,讲述如何利用ant的API在java中实现这2个命令
1.mkdir
public static void makeDir(String source) {
Mkdir mkDir = new Mkdir();
Project project = new Project();
project.init();
mkDir.setProject(project);
mkDir.setTaskName("mkdir");
mkDir.setDescription("mkDir");
mkDir.setDir(new File(source));
mkDir.execute();
}
通过测试我们发现,直接通过构建包目录下Mkdir命令即可很方便实现改命令
2.javac
public static void javac(Path srcdir, String destDir, String excludes, Path classpath) {
Javac javac = new Javac();
Project project = new Project();
project.init();
javac.setProject(project);
javac.setFork(true);
javac.setTaskName("javac");
javac.setDescription("javac");
javac.setSrcdir(srcdir);
javac.setDestdir(new File(destDir));
javac.setExcludes(excludes);
javac.setClasspath(classpath);
javac.execute();
}
这里需要注意的是,其中classPath,由于我们通常不同项目都是需要依赖不同jar,所以该参数我们一般通过ant文件中自定义,后端通过ant中的path id去做传递,通过以下API即可获取ant中定义的名为lib.classpath的路径:
this.getProject().getReferences().get("lib.classpath").toString()
二、关于如何实现定制的antTask的java单元测试
我们通过查找ant相关文档发现,他提供了一个JUnit Rule org.apache.tools.ant.BuildFileRule,通过该providers我们可以轻松实现ant脚本的单元测试问题
下面附上ant官方自带给出的ant单元测试实例:见HelloWorldTest.rar
有了以上功能,我们可以轻松通过ant满足各种定制化的环境部署要求,保障开发和运维的协同
对于实现企业内部DevOps管理可以有比较大的帮助
交流可邮件yudeli@cn.ibm.com
本文系原创,转载请联系作者
分享到:
相关推荐
SonarQube作为一个强大的代码质量管理平台,提供了多种工具来帮助开发者进行静态代码分析、代码异味检测以及复杂度计算等。其中,Sonar Ant Task就是用于集成SonarQube到Apache Ant构建系统中的关键组件,它使得在...
在IT行业中,Ant是Apache软件基金会的一个开源项目,它是一个基于Java的构建工具,主要用于管理Java项目的构建过程。Ant以其灵活性和可配置性而受到广大开发者喜爱,它使用XML来描述构建过程,使得构建脚本易于理解...
Apache Ant 是一个由Java开发的构建工具,它主要用于自动化Java项目的构建、编译、测试和部署过程。在“ANT初步运行例子,ANT学习”这个主题中,我们将深入了解Ant的工作原理和基本用法。 Ant是基于XML的,其核心...
Ant是Apache软件基金会下的一个项目,它是一款强大的构建工具,主要用在Java环境中,用于自动化构建、测试和部署Java应用程序。Ant使用XML来描述构建过程和依赖关系,使得构建过程可配置且易于跨平台移植。 1. **...
Ant是Java开发中的一款自动化构建工具,类似于...开发者可以根据项目需求自定义Task,或者使用社区提供的众多预定义Task,以实现复杂的构建逻辑。通过合理地配置和利用Ant,可以大大提高Java项目的构建效率和一致性。
Ant的核心概念是基于任务(task)的,每个任务都是一个特定的Java类实现,可以执行诸如编译、拷贝、压缩、解压、单元测试等操作。在XML配置文件中,这些任务被组织成一系列目标(target),形成一个有序的构建流程。例如...
Ant是Apache软件基金会下的一个项目,它是一个Java构建工具,主要用来自动化构建Java应用程序。Ant以其灵活性和可扩展性在Java开发领域中占据了重要的地位,尤其是在大型项目或者团队协作中,它的作用尤为重要。 1....
快速入门Ant,我们通常会从一个简单的例子开始,例如编译并运行一个Java程序。例如,一个名为`HelloWorld`的Java类,我们可以在`build.xml`中编写如下配置: ```xml ${dest}"/> ${src}" destdir=...
任务是Ant的基本执行单元,它们是通过实现了特定接口的Java类实现的,这使得Ant具有高度的可扩展性,可以方便地添加新的自定义任务。 例如,以下是一个简单的Ant构建文件的示例: ```xml *"/> ...
Apache Ant 是一个由Java语言编写的构建工具,它在软件开发过程中主要负责自动化构建任务,如编译、打包、测试和部署。Ant以其XML为基础的构建文件(build.xml)著称,开发者可以自定义构建过程,使其适应各种项目...
10. **构建生命周期**:说明Ant如何理解目标的依赖关系,并构建一个有序的执行流程。 11. **Ant与持续集成**:简述Ant在持续集成工具(如Jenkins、Hudson)中的应用。 12. **实战案例**:提供实际项目构建的例子,...
- 上述示例中,`<project>`标签定义了一个名为“测试脚本”的项目,`default`属性指定了默认执行的目标`copyfile`。 - `<target>`标签定义了具体的任务集,例如上面例子中的文件复制任务。 - `<copy>`标签用于...
一个Ant项目通常由一个名为`build.xml`的主配置文件构成,其中包含了各种任务(tasks)和目标(targets)。任务是Ant中的基本执行单元,如`javac`用于编译Java源码,`copy`用于复制文件。目标则是一系列任务的集合,...
至于"工具"标签,Ant本身就是一个工具,它可以与其他工具(如JAR、WAR打包工具,测试框架等)配合使用,实现整个软件开发生命周期中的自动化。 在与Tomcat相关的场景中,Ant可以用于部署Web应用程序。例如,我们...
在这个例子中,我们定义了一个新的Ant任务“swingdialog”,并在“show-dialog”目标中调用了它。当执行此目标时,一个包含“取消”按钮的对话框会被展示出来,点击“取消”会终止构建过程。 总结来说,“ant-swing...
Ant是Apache软件基金会的一个开放源代码项目,它是一个基于Java的构建工具,主要用于自动化Java项目的构建、编译、测试和部署等任务。Ant以其简单易用、可扩展性强的特点,被广泛应用于各种Java开发环境中。 **一、...