以前都是用maven2做项目管理,但最近又用回了ant脚本执行打包,发现每次改变工程得jar依赖后打war包很麻烦,还得手工改变build.xml中的引用,所以为了偷懒就的相隔一劳永逸的办法,于是产生了如下偷懒的代码(可能技术进步都是因为我们想从无意义的手工劳动中解脱出来
)
1.扩展的ant类,分析classpath文件,替换变量M2_REPO以获得依赖jar的全路径,并执行copy
java 代码
2.ant的build.xml文件,使用扩展的ant任务taskdef,其中M2_REPO是eclipse的变量,而工程所引用的依赖都是通过此变量添加到工程中的
<?xml version="1.0" encoding="UTF-8"?>
<project name="crms" default="clean-jar" basedir=".">
<property name="M2_REPO" value="D:/repository" />
<property name="abator.dir" value="${M2_REPO}/abator/abator/1.0.0" />
<property name="ant-extend.dir" value="${M2_REPO}/ant-extending/ant-extending/1.0.0" />
<property name="build.dir" location="target/classes" />
<property name="webapp.dir" value="src/main/webapp" />
<property name="resources.dir" value="src/main/resources" />
<property name="classpath.dir" location=".classpath" />
<property name="lib.dir" value="${webapp.dir}/WEB-INF/lib" />
<property name="generated.source.dir" value="${basedir}" />
<!-- - - - - - - - - - - - - - - - - -
import: Ant> Runtime> Global Entries> dom4j1.6; jaxen1.1;
- - - - - - - - - - - - - - - - - -->
<taskdef name="createPath" classname="com.seraph.extending.AntPathTask" classpath="${ant-extend.dir}/ant-extending-1.0.0.jar" />
<!-- - - - - - - - - - - - - - - - - -
target: 通过自动分析.classpath文件中的引用,拷贝jar包
- - - - - - - - - - - - - - - - - -->
<target name="copy-jar">
<createPath libdir="${lib.dir}" repository="${M2_REPO}" classpath="${classpath.dir}" />
</target>
<target name="create-war" depends="copy-jar">
<war destfile="crms.war" webxml="${webapp.dir}/WEB-INF/web.xml">
<fileset dir="${webapp.dir}" />
<classes dir="${build.dir}" />
</war>
</target>
<target name="clean-jar" depends="create-war">
<delete dir="${lib.dir}" />
</target>
<!-- - - - - - - - - - - - - - - - - -
target: Abator ORM 生成器
- - - - - - - - - - - - - - - - - -->
<target name="abator" description="Generate the ibatis files">
<taskdef name="abator"
classname="org.apache.ibatis.abator.ant.AbatorAntTask"
classpath="${abator.dir}/abator-1.0.0.jar" />
<abator overwrite="flase" configfile="${resources.dir}/abatorConfig.xml" verbose="false" >
<propertyset>
<propertyref name="generated.source.dir"/>
</propertyset>
</abator>
</target>
</project>
3.在运行时需在eclipse的ant运行环境中,加入dom4j,saxpath及jaxen包的引用
4.好了可以看看屏幕上的输出了,war很快就打好了
PS: 开发Ant扩展时在Eclipse中的调试方法:
Run Configurations>Java Application
创建一个java application,Main选项卡中的Project项中选自己扩展Ant所在的项目,Main Class项中添入“org.apache.tools.ant.Main
”
在Arguments选项卡中的Project Arguments中添入“-f "[your build.xml path] [your task name] "
”
如:-f "/Users/seraph/Workshop/workspace/ant-extending/build.xml" copy-jar”
最后:Run
God bless you.
分享到:
- 2007-11-14 09:42
- 浏览 1926
- 评论(0)
- 论坛回复 / 浏览 (0 / 5387)
- 查看更多
相关推荐
Ant以其灵活性和可扩展性,通过XML格式的构建文件(build.xml)来定义任务,使得开发者能够自动化执行各种构建过程。 在Ant中,"标签"是构建文件的核心元素,它们定义了具体的任务和操作。例如,`<project>`标签是...
当需要编译项目时,只需在 Eclipse 的构建配置中指定 Ant 目标,Eclipse 就会自动调用 Ant 执行相应的任务,如编译源代码、生成 JAR 包或 WAR 包。同时,Eclipse 还会显示 Ant 构建的输出信息,方便开发者追踪错误和...
3. **打包JAR/WAR**:Ant能够将编译后的类文件和其他资源打包成JAR或WAR文件,这对于创建可分发的Java应用或Web应用至关重要。 4. **运行测试**:Ant支持JUnit和其他测试框架,可以自动化执行单元测试和集成测试,...
- **测试**:对新构建的包进行自动化测试,确保功能正常。 - **部署**:测试通过后,自动部署到测试或生产环境。 **运行环境与依赖** - **JDK**:安装并配置Java开发环境,为Ant提供基础支持。 - **Ant**:安装...
- ANT自身提供了一些基本任务,但通过引入额外的ANT插件,可以扩展更多的功能,比如Maven插件、 Ivy插件用于依赖管理。 - 项目"AntAdvanceDemo"可能使用了某些插件来增强其构建能力。 8. **ANT的执行** - 在...
- **dist**:发布后的产品文件,如jar包、war包等。 6. **构建流程** - 编写build.xml:定义项目结构,包括目标和任务。 - 执行Ant:通过命令行调用ant,可指定目标,默认执行default指定的目标。 - 目标执行:...
总之,Apache Ant作为一个功能全面且灵活的Java构建工具,非常适合于Java项目的构建自动化。通过简单的配置和XML语法,用户可以轻松地将重复的构建任务自动化,从而使得整个开发过程更加高效和规范。
Ant基于XML文件(通常命名为build.xml)来定义构建过程,包括编译源代码、创建JAR或WAR文件、运行测试、清理工作目录等任务。其主要优点在于灵活性和可定制性,能够适应不同项目的需求。 **二、Eclipse集成Ant** ...
- `dist`:存放最终的可部署包,如`.jar`或`.war`文件。 - `doc`:存放生成的API文档。 #### 创建`build.xml`文件 `build.xml`是Ant的核心配置文件,用于定义构建过程中的任务流。在Eclipse项目根目录下创建`build...
- 可以直接在Eclipse中运行和调试应用程序,或者打包成可部署的WAR或JAR文件。 熟练掌握这些Eclipse的技巧和功能,可以显著提高开发效率,减少出错的可能性,让编程变得更加高效和愉快。对于专业的开发人员来说,...
在Java开发环境中,Eclipse是一个广泛使用的集成开发环境(IDE),而Ant则是一个基于Java的构建工具,用于自动化软件构建过程。本篇文章将详细介绍如何在Eclipse中利用Ant灵活构建Web应用程序。 首先,Ant是Apache...
- **构建工具**:通过插件如Maven或Ant,Eclipse能够自动化构建项目,生成可部署的JAR或WAR文件。 4. **Eclipse 3.3的扩展**: - Eclipse的开放架构允许用户通过安装插件来扩展其功能。例如,可以添加支持Python...
Ant.jar的使用并不复杂,开发者只需要编写符合规范的build.xml文件,然后通过命令行运行`ant [target]`,Ant就会根据文件中的定义自动执行相应的构建任务。此外,大多数现代Java IDE,如Eclipse和IntelliJ IDEA,都...
Ant是Apache旗下的一款强大的构建工具,主要用于Java项目的自动化构建过程,如编译、测试、打包、部署等操作。它的核心优势在于其高度的可定制性和灵活性,使得开发者能够通过简单的XML配置文件(通常命名为`build....
3. **Eclipse与Ant集成**:在Eclipse中导入Ant项目,使用Eclipse的Ant视图管理和运行构建脚本,以及配置自动构建触发器。 4. **项目部署**:利用Ant将Web应用部署到Tomcat服务器,包括发布WAR文件到Tomcat的webapps...
在构建和部署过程中,Ant能够自动执行诸如编译代码、封装二进制文件、在测试服务器上部署、测试变更以及代码复制等任务。这些任务是开发者日常工作中的常规活动,因此了解构建工具的使用是非常重要的。 Ant的历史...
- **自定义任务**:通过编写Java类实现自定义任务,扩展Ant的功能。 - **宏定义**:宏定义允许定义一组任务,方便多次使用,类似于函数或模板。 - **外部资源管理**:Ant可以处理各种类型的文件和资源,如XML、...
- **打包**:Ant支持创建JAR、WAR和EAR等不同类型的归档文件。 - **测试**:可以集成JUnit或其他测试框架进行单元测试。 - **部署**:发布应用程序到远程服务器或应用服务器。 - **清理**:清除构建过程中产生的...
- 使用`war`任务可以打包Web应用程序为WAR文件,适用于部署到Web服务器。 - 可以通过`ivy`(Apache Ivy)模块来管理和下载依赖库,类似于Maven的POM。 6. **Ant的扩展** - **Ant贡献任务(Contrib Tasks)**:...