两周发一篇技术贴,总结一下这两周学习的成果。这是第二贴。
最近开始学习ant部署的教程,了解了一点点皮毛,做了一些总结。
先发第一部分,附件是相关的联系的源码文件。
第二部分再总结一下ant如何和tomcat结合部署一个web工程,如何和junit结合进行单元测试。
我是ant初学者,欢迎高手指点...
一
.
环境变量配置
下载地址:
http://ant.apache.org/bindownload.cgi
下载之后,配置
ANT_HOME
(E:\
火狐下载
\apache-ant-1.8.2-bin\apache-ant-1.8.2)
添加
PATH
%ANT_HOME%\bin;
为了方便测试,还添加了
junit jar
包到
ant
的下面的
lib
下面。
修改环境变量
class_path
:添加
%ANT_HOME%\lib\junit-4.9b2.jar;
测试安装
ant
是否成功,在
cmd
下面输入命令:
ant
出现:
build failed
等字样,就说明成功了。因为缺少build.xml
就可以了。
二
ANT
基础使用
2.1HelloWorld
2.1
建立一个
src
文件夹,放一个简单的
HelloWorld.java
package test;
public class HelloWorld
{
public static void main(String[] a){
System.out.println("
你好的啊
");
}
}
|
2.2
在
src
目录同级写一个
build.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!--
编译的名字
-->
<project name="HelloWorld" default="run" basedir=".">
<!--
下面定义了三个变量,后面将引用。
-->
<property name="src" value="src"/>
<property name="dest" value="classes"/>
<property name="hello_jar" value="hello1.jar"/>
<!-- init
步骤
:
创建一个
dest
目录
-->
<target name="init">
<mkdir dir="${dest}"/>
</target>
<!--
编译
-->
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>
<!--
生成
jar -->
<target name="build" depends="compile">
<jar jarfile="${hello_jar}" basedir="${dest}"/>
</target>
<!--
运行
-->
<target name="run" depends="build">
<java classname="test.HelloWorld" classpath="${hello_jar}"/>
</target>
<!--
清空
-->
<target name="clean">
<delete dir="${dest}"/>
<delete file="${hello_jar}"/>
</target>
<!--
重新编译执行
-->
<target name="rerun" depends="clean,run">
<ant target="clean"/>
<ant target="run"/>
</target>
</project>
|
注意:下面的
name
里面的值都可以自定义!!
target
就是表示
ant
可以执行的操作名称!!
在第一行配置文件里面,
default="run"
表示默认执行就是
target=run
的操作。即,如果只输入
ant
,实际效果等于
ant run
三
引用
properties
属性
可以在
properties
文件中定义属性内容,然后用一个公用的
xml
,去调用这些属性文件的值就可以了,只需要改写属性内容的值。
定义一个属性文件:
all.properties
,内容如下,每个
src
文件夹里面都含有
build.xml
以及
java
所在的源码文件夹
src1=D:\\ant test\\2build_some_srcs\\src1
src2=D:\\ant test\\2build_some_srcs\\src2
src3=D:\\ant test\\2build_some_srcs\\src3
|
然后在同级定义一个
build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="main" default="build" basedir=".">
<property file="all.properties"/>
<property name="bin" value="${basedir}\bin"/>
<target name="init">
<mkdir dir="${bin}"/>
</target>
<!--
在
build
的时候,把各个子文件夹里面的
jar
都拷贝到
bin
里面去!
-->
<target name="build" depends="init,subuild">
<copy todir="${bin}">
<fileset dir="${src1}">
<!--
这里可以添加多种文件的类型。如果几个不同的
src
目录里面有同名的文件,后面的就覆盖了
-->
<include name="*.jar"/>
<include name="*.xml"/>
</fileset>
<fileset dir="${src2}">
<include name="*.jar"/>
</fileset>
<fileset dir="${src3}">
<include name="*.jar"/>
</fileset>
</copy>
</target>
<target name="subuild" >
<ant dir="${src1}" target="build"/>
<ant dir="${src2}" target="build"/>
<ant dir="${src3}" target="build"/>
</target>
<!--
下面通过递归调用了各个
src
里面的
ant run
命令!
-->
<target name="run" >
<ant dir="${src1}" target="run"/>
<ant dir="${src2}" target="run"/>
<ant dir="${src3}" target="run"/>
</target>
<target name="clean">
<ant dir="${src1}" target="clean"/>
<ant dir="${src2}" target="clean"/>
<ant dir="${src3}" target="clean"/>
</target>
<target name="rebuild" depends="build,clean">
<ant target="clean"/>
<ant target="build"/>
</target>
</project>
|
四
include
配置文件
可以把一些公用的配置放到一个
xml
中,其他分的配置文件在引用这个文件
定义一个
include.xml:
<!--
定义了一些属性,以及还有一个动作叫做
test
,实际是调用的
run -->
<?xml version="1.0" encoding="UTF-8"?>
<property name="src" value="src"/>
<property name="dest" value="classes"/>
<target name="test">
<ant target="run"/>
</target>
然后在要引用上面配置文件的主文件中:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE project[
<!ENTITY share-variable SYSTEM "file:../include.xml">
]>
<project name="HelloWorld" default="run" basedir=".">
&share-variable;
<!--
这里的东西不要忘记了!
-->
<property name="hello_jar" value="hello1.jar"/>
<target name="init">
<mkdir dir="${dest}"/>
</target>
<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>
<target name="build" depends="compile">
<jar jarfile="${hello_jar}" basedir="${dest}"/>
</target>
<target name="run" depends="build">
<java classname="test.HelloWorld1" classpath="${hello_jar}"/>
</target>
</project>
|
然后可以使用
ant test
进行执行了(调用的
run
方法)
五
生成
jar
包
<?xml version="1.0" encoding="GBK"?>
<project name="HelloWorld" default="run" basedir=".">
<property file="all.properties"/> <!--
引用一个属性文件
-->
<target name="clean">
<delete dir="${build.jar}"/>
</target>
<!--
将源文件编译之后的
class
文件放到
classes.dir
下面
-->
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src}" destdir="${classes.dir}"/>
</target>
<!--
将
class
打
jar
包,并制定执行的主文件是
main-class,
然后把
jar
包
放到
jar.dir
里面
,
命名为
myfirst.jar-->
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/myfirst.jar"
basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
<!--
执行生成的
jar
包,注意下面的
fork
属性为
true
表示引用非
java_Home
指定
位置的
jar
包
-->
<target name="run" depends="jar">
<java jar="${jar.dir}/myfirst.jar" fork="true"/>
</target>
<target name="clean-build" depends="clean,jar"/>
<target name="main" depends="clean,run"/>
</project>
|
六
调用其他
jar
包
经常需要在代码中引用其他的
jar
包,例如常用的
log4j
等。
<?xml version="1.0" encoding="GBK"?>
<project name="HelloWorld" default="run" basedir=".">
<property file="all.properties"/>
<target name="clean">
<delete dir="${build.jar}"/>
</target>
<!--
表示引入的路径里面的全部的
jar
包
-->
<path id="classpath">
<fileset dir="${lib.dir}" includes="**/*.jar"/>
</path>
<!--
将源文件编译之后的
class
文件放到
classes.dir
下面
同时引用了
classpath
里面包含的
jar
文件
-->
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src}" destdir="${classes.dir}"
classpathref="classpath"/>
</target>
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/myfirst.jar"
basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
<!--
执行生成的
jar
包,注意下面的
fork
属性为
true
表示引用非
java_Home
指定
位置的
jar
包
-->
<target name="run" depends="jar">
<java classname="${main-class}" fork="true">
<classpath>
<path refid="classpath"/>
<path location="${jar.dir}/myfirst.jar"/>
</classpath>
</java>
</target>
<target name="clean-build" depends="clean,jar"/>
<target name="main" depends="clean,run"/>
<!--
<path id="classpath">
<fileset dir="lib" includes="**/*.jar"/>
</path>
<target name="run" depends="jar">
<java fork="true" classname="">
<classpath>
<path refid="classpath"/>
<path location="${jar.dir}/apache-ant.jar" />
</classpath>
</java>
</target>
-->
</project>
|
七
连接数据库
可以通过
ant
直接连接数据库,进行数据库的操作。
<!--
直接使用命令
ant testsql
就可以对数据库进行操作了!
-->
<!--
将访问数据库的驱动放到
ant
目录下面,为什么不像上面的
F
里面说的配置
classpath
呢?
我认为是因为那个
F
是在代码里面调用了这个
jar
包,而这里是直接在
ant
里面调用的
sql
驱动,直接就连数据库了!!
. -->
<target name="testsql">
<sql driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/lsqgbk2"
userid="root"
password="admin">
insert into china_area values(11,22,33)
</sql>
</target>
|
八
更多的
ant task
或者叫做
core task
<!--
拷贝目录下面的指定文件类型,排除另外的一些类型
-->
<target name="copy2" depends="clean,init">
<copydir src="${src2}" dest="${dest}" includes="*.doc" excludes="*.pdf"/>
</target>
分享到:
相关推荐
ANT学习资料,我在学习ANT查找的一些资料,进行汇总
ant学习测试工程源码,基于spring与hiberante与junit的java工程 用于ant的项目构建
ant ant ant antant ant ant antant ant ant ant
ant第三部分源码ant第三部分源码ant第三部分源码ant第三部分源码
ant学习笔记之(ant执行命令的详细参数和Ant自带的系统属性)
ant ant下载 ant配置ant ant下载 ant配置ant ant下载 ant配置
ant附加学习资料ant附加学习资料ant附加学习资料ant附加学习资料ant附加学习资料ant附加学习资料ant附加学习资料ant附加学习资料ant附加学习资料ant附加学习资料
大家互相学习,这是一个ANT初步学习的例子,在本机器上运行正常,大家可以相互学习技术
1 Ant是什么? 2下载、安装Ant 3编写build.xml Ant 命令行参考 Apache Ant 是一个基于 Java的生成工具。 生成工具在软件开发中用来将源代码和其他输入文件转换为可执行文件的形式(也有可能转换为可安装的产品映像...
超强ant学习资料
ant学习比较全的资料,ant帮助文档,ant权威指南。。。。
关于Ant学习的一点点小结,整理成档了,文档中已经包含了几个简单的build.xml实例,也有注释,简单明了、通俗易懂
ant脚本资料ant脚本资料ant脚本资料ant脚本资料ant脚本资料ant脚本资料ant脚本资料
Ant权威指南 这个大家都知道,方便又需要的朋友
Ant学习笔记Ant学习笔记Ant学习笔记
ant模板学习使用,ant构建项目,初学者快速入门
学习ant打包技术,轻松打包,代码简单清晰,易学易懂!
ant的工具的详细介绍,教您使用ant工具
ant环境配置,ant文件编写,ant使用技巧,ant开发实例