Mark For Ant~~
先转载一篇很好的ant文章:
http://blog.csdn.net/xiaoli_feng/archive/2009/03/06/3963232.aspx
资料:ant中文使用手册。Ant的真正名字Another Neat Tool,就叫蚂蚁吧。
Ant 无所不能,想到做到~
关键在build.xml的编写就是相当make中的makefile,NetBean项目中就含有build.xml文件可以学习使用,把它当作一个模板使用。
主要的三个节点:<project/><property/><target/>
在实际项目中,一个项目被分成很多个模块,每个小组负责一个模块,
为了测试,他们自己写了一个build.xml,而你负责整合
这个时候你有2个选择
1.重新写一个build.xml,这是你个麻烦的事情
2.尽量使用他们的build.xml
假设有3个小组
src1 src2 src3
你拿到他们的代码和build.xml则你构建如下的目录树
src
|-src1
build.xml
|-src2
build.xml
|-src3
build.xml
我们采用第二种方法:
我们在src文件夹中新建一个build.xml来利用他们写好的build.xml
如何构建呢,还是按照我们上面的思路
project target property
我们新建一个工程来调用他们各自的build.xml
举两个例子run和build
<target name="run">
<ant dir="${src1}" target="run" />
<ant dir="${src2}" target="run" />
<ant dir="${src3}" target="run" />
</target>
即使在同一个build.xml中也可以使用<ant target="run"/>
Ant的build.xml规则很简单,很短的时间就可以学会,关键是如何使用也就是Ant Task文档中都包含了,这里就举例一些很有用、很必须的其他的可以去查文档,多用就记住了
1.设置classpath(文档中使用的classpath似乎不正确)这里使用path
(这里给一个参考的观点)
http://zhaoqiangster.iteye.com/blog/317085
<path id="project.class.path">
<pathelement path="${classpath}" />
<fileset dir="lib">
<include name="**/*.jar" />
</fileset>
<pathelement location="classes" />
<dirset dir="build">
<include name="apps/**/classes" />
<exclude name="apps/**/*Test*" />
</dirset>
<filelist refid="third_part_jars" />
</path>
2.使用classpath
<target>
<javac>
<classpath refid="project.class.path" />
</javac>
</target>
3<java classname="" classpath=""/>
4打jar包
<jar destfile="${dest}/lib/app.jar" basedir="${build}/classes" />
or
<jar destfile="${dest}/lib/app.jar" basedir="${build}/classes" includes="mypack/test/**" excludes="**/Test.class" />
5.打ear包
<ear destfile="build/myaap.ear" appxml="src/metadata/application.xml">
<fileset dir="build" includes="*.jar,*.war"/>
</ear>
6.打war包
方式一:
<target name="prepare_war" depends="compile">
<mkdir dir="${EmployeeDuty.build}/WEB-INF/classes" />
<copy todir="${EmployeeDuty.build}/WEB-INF/classes">
<fileset dir="${EmployeeDuty.classes}">
<include name="**/*.class" />
<include name="**/*.properties" />
<include name="**/*.xml" />
</fileset>
</copy>
<mkdir dir="${EmployeeDuty.build}/WEB-INF/lib" />
<copy todir="${EmployeeDuty.build}/WEB-INF/lib">
<fileset dir="${EmployeeDuty.lib}">
<include name="**/*.jar" />
</fileset>
</copy>
<copy todir="${EmployeeDuty.build}">
<fileset dir="${EmployeeDuty.web}">
<exclude name="**/Meta-inf/**" />
</fileset>
</copy>
</target>
<target name="war" depends="prepare_war">
<jar jarfile="${EmployeeDuty.dist}/EmployeeDuty_v2.war" basedir="${EmployeeDuty.build}" />
方式二:
<war destfile="myapp.war" webxml="WebRoot/web-inf/web.xml">
<fileset dir="dir_src">
</fileset>
<lib dir="dir_lib">
</lib>
<classes dir="dir_classes"/>
</war>
</target>
.copy的使用
.mkdir
.delete
.touch
先到这里慢慢补充....