以前都是用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
- 浏览 1870
- 评论(0)
- 论坛回复 / 浏览 (0 / 5358)
- 查看更多
相关推荐
使用ant打war包使用ant打war包使用ant打war包使用ant打war包使用ant打war包使用ant打war包
用Eclipse IDE可以自动生成ANT的build文件,但是该文件的路径名移植性太差。当应用hudson一类的自动化平台来构建Eclipse插件时,不能直接调用ANT工具来编译。本工具自动修改Eclipse的路径为 ${ECLIPSE_HOME},并且...
ant打包rcp必备环境 eclipse-3.8.2-delta-pack eclipse-SDK-3.8.2-win32 org.eclipse.rcp-3.8.2
命令行中ant打war包,一个简单易懂的小例子
eclipse下利用ant、junit进行自动化测试例子源码
Tomcat正是以Ant作为编译工具,要在eclipse中编译Tomcat,必须要用的六个jar文件。
一个关于ant4eclipse的插件的东东
NULL 博文链接:https://hello-player.iteye.com/blog/438319
Using ANT in Eclipse
ant打包hadoop-eclipse-plugin
一个普通java程序用ant打包的列子,完整的,里面采用的是eclipse自带的编译插件进行的打包,需要结合eclipse中的插件一起使用
ant的配置文件ant的配置文件ant的配置文件ant的配置文件
打包:将编译后的*.calss文件打包成 jar或war包; 部署:将打包后的war文件部署到制定的web应用服务器中去。(tomcat的webappers中去) ******************************* ant默认执行build.xml文件 ant是使用的java...
博文链接:https://sunrie.iteye.com/blog/109470
Ant自动打包用的.
Eclipse之ANT使用,开发部署工具利器!
jenkins+svn一键发布war包,简单、高效、便捷。操作简单。
eclipse ant打包,所需要的内容ant 文件夹,里面的内容请根据自己的目录,秘钥进行修改 然后放进工程根目录即可
ant 多渠道自动打包 ,出现appt 没找到 ,去sdk里拷贝到指定目录