分享
 
 
 

使用 ant 让你愉快编程(2)

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

使用 ant 让你愉快编程(2)

摘要: build_common.xml, common.xml 及 usage.txt

2. 介绍 build_common.xml, common.xml 及 usage.txt

. 以下为 build_common.xml 文件内容.

<?xml version="1.0" encoding="ISO-8859-1"?>

<!--

Copyright 2004 camry.wu@gmail.com

This program is free software; you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation; either version 2 of the License, or

(at your option) any later version.

This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License

along with this program; if not, write to the Free Software

Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

-->

<project name="Common build file" default="all" basedir="">

<description>

这是一个通用的 ant build 文件. Version 1.0.

感谢: 这篇文档借用了很多 Johan 的想法, 他的主页在 http://dev.kanngard.net

Copyright 2004 camry.wu@gmail.com

</description>

<!-- 读入 common.xml 配置 -->

<xmlproperty file="${path.common}/common.xml"

semanticAttributes="true"

keepRoot="false"/>

<!-- 设置编译时的 classpath -->

<path id="compile.classpath">

<fileset dir="${path.common}/lib">

<include name="*.jar"/>

</fileset>

<fileset dir="${lib}">

<include name="*.jar"/>

</fileset>

<pathelement location="${dist.classes}"/>

</path>

<!-- 设置运行时的 classpath -->

<path id="run-time.classpath">

<path refid="compile.classpath"/>

</path>

<!-- 初始化过程, 会调用具体项目的初始化过程先 -->

<target name="init"

depends="project_init"

description="Initialize environment">

</target>

<!-- 显示使用说明 -->

<target name="usage">

<loadfile property="usage.message"

srcFile="${path.common}/usage.txt"/>

<echo message="${usage.message}"/>

</target>

<!-- 预备, 通常在项目刚建立的时候运行此任务 -->

<target name="common_prepare"

depends="init" description="Prepare build directory">

<copy todir="." preservelastmodified="true">

<fileset dir="${path.common}/template/">

<include name="**/*"/>

</fileset>

</copy>

</target>

<!-- 配置 checkstyle , 只检查 src/main 目录下的源代码 -->

<target name="checkstyle" depends="init">

<taskdef resource="checkstyletask.properties"

classpath="${path.common}/lib/checkstyle-all-3.4.jar"/>

<checkstyle config="${build}/checkstyle_checks.xml">

<fileset dir="${src.main}" includes="**/*.java"/>

<property key="checkstyle.cache.file"

file="${path.common}/lib/checkstyle.cache"/>

<classpath refid="compile.classpath"/>

</checkstyle>

</target>

<!-- 编译 src 下源文件, class 文件放到 dist/classes 下 -->

<target name="compile" depends="init" description="Compile source">

<mkdir dir="${dist}/classes"/>

<javac debug="${compile.debug}"

deprecation="${compile.deprecation}"

destdir="${dist}/classes"

target="${compile.jdk-version.target}"

source="${compile.jdk-version.source}"

optimize="${compile.optimize}"

srcdir="${src}">

<classpath refid="compile.classpath"/>

</javac>

</target>

<!-- 清除 dist 目录 -->

<target name="clean"

depends="project_clean"

description="Wipeout all generated files">

<delete dir="${dist}/classes"/>

<delete dir="${dist.lib}"/>

<mkdir dir="${dist}/classes"/>

<mkdir dir="${dist.lib}"/>

</target>

<!-- 打包 -->

<target name="jar"

depends="checkstyle, compile"

description="Create binary distribution">

<mkdir dir="${dist}/classes"/>

<mkdir dir="${dist.lib}"/>

<copy file="LICENSE" todir="${dist}/classes"/>

<delete>

<fileset dir="${dist.lib}" includes="*.jar"/>

</delete>

<jar basedir="${dist}/classes"

jarfile="${dist.lib}/${component.name}-${component.version}.jar">

<include name="**/*.class"/>

<exclude name="**/Test*.class"/>

</jar>

<delete>

<fileset dir="${dist}/classes">

<include name="LICENSE"/>

</fileset>

</delete>

</target>

<!-- 运行 dist/classes 目录下的所有以 Test 开头的测试类 -->

<target name="test" depends="compile" description="run junit tests">

<junit printsummary="on"

fork="false"

haltonfailure="false"

failureproperty="tests.failed"

showoutput="true">

<classpath refid="run-time.classpath"/>

<formatter type="brief" usefile="false"/>

<batchtest>

<fileset dir="${dist}/classes">

<include name="**/Test*.*"/>

</fileset>

</batchtest>

</junit>

<fail if="tests.failed">

*********************************************************

*********************************************************

**** One or more tests failed! Check the output... ****

*********************************************************

*********************************************************

</fail>

</target>

<!-- 发布, 会调用具体项目的发布任务 -->

<target name="deploy"

depends="project_deploy" description="Deploy application"/>

<!-- 创建文档 -->

<target name="javadoc"

depends="compile"

description="Create component Javadoc documentation">

<delete dir="${docs.api}"/>

<mkdir dir="${docs.api}"/>

<javadoc author="true"

bottom="${component.title}"

destdir="${docs.api}"

source="${compile.jdk-version.source}"

doctitle="${component.title}"

packagenames="*"

access="protected"

sourcepath="${src.main}"

version="true"

windowtitle="${component.title} (Version ${component.version})">

<classpath refid="compile.classpath"/>

</javadoc>

</target>

<!-- 根据 cvs 配置, 从 cvs 服务器上下载源代码 -->

<target name="fetch"

depends="project_fetch" description="fetch current source from cvs">

</target>

<!-- 将源代码文件打包, 备份 -->

<target name="src-zip"

depends="checkstyle,compile"

description="Creates source distribution">

<copy file="LICENSE" todir="${src.main}"/>

<delete>

<fileset dir="${dist.lib}" includes="*-src.zip"/>

</delete>

<zip basedir="."

destfile="${dist.lib}/${component.name}-${component.version}-src.zip"

whenempty="fail">

<include name="**/*.*"/>

<include name="*"/>

<include name="**/*"/>

<exclude name="${dist}/**/*.*"/>

<exclude name="*.*~"/> <!-- vi(JEdit) backups -->

<exclude name=".nbattrs"/> <!-- Netbeans filesystem attributes -->

<exclude name="*.old"/>

</zip>

</target>

<!--

将源文件上传到服务器备份, 将目标文件上传到服务器发布.

此任务中内容由各位自行设定, 一般是运行 ftp 任务.

-->

<target name="publish"

depends="clean,jar,javadoc,src-zip" description="publish project">

</target>

<!-- 构建 -->

<target name="all"

depends="clean,fetch,test,jar,javadoc,deploy"

description="build project"/>

</project>

. 以下为 common.xml 文件内容.

<?xml version="1.0" encoding="ISO-8859-1"?>

<!--

Copyright 2004 camry.wu@gmail.com

Common Ant build environment

-->

<root>

<!--

路径配置, 基本不用改动.

但是假如你在一个陌生的环境中使用这套 build 工具,

也许需要稍为修改一下这些路径的配置.

-->

<bin value="bin"/>

<build value="build">

<lib value="${build}/lib"/>

</build>

<dist value="dist">

<lib value="${dist}/lib"/>

<classes id="dist.classes" location="${dist}/classes"/>

</dist>

<docs value="docs">

<api value="${docs}/api"/>

</docs>

<lib value="lib"/>

<src value="src">

<main value="${src}/main"/>

<test value="${src}/test"/>

</src>

<!-- 编译选项 -->

<compile>

<debug value="true"/>

<deprecation value="true"/>

<jdk-version>

<source value="1.4"/>

<target value="1.4"/>

</jdk-version>

<optimize value="true"/>

</compile>

</root>

. 以下为 usage.txt 文件内容.

${component.name} build file

---------------------------------------------

Available targets are:

prepare --> 初始化项目环境

checkstyle --> 检查源文件编码规范

compile --> 编译

jar --> 打包

build --> 构建

test --> 测试

clean --> 清除

deploy --> 发布到 web 服务器运行

publish --> 发布产品(源码及目标文件)

fetch --> 从 cvs 上获取最新资源

docs --> 创建 api 文档

all --> 执行 clean, fetch, build, test, doc, deploy

main --> 默认的构建过程(自行修改)

下一篇[url=http://blog.csdn.net/camry_camry/archive/2004/10/21/145752.aspx]上一篇

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有