`
z75148885
  • 浏览: 191388 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

用 ant 让你愉快编程

阅读更多

目录结构:

work/common/
| -- build_common.xml # 这个文件包含基本的构建操作
| -- common.xml # 这个文件为 build_common.xml 作配置,
| 基本上不用改动.
| -- build_tomcat.xml # 这个文件包含了与tomcat合作的基本操作.
| -- tomcat.xml # 这个文件为 build_tomcat.xml 作配置,
| 基本上只需要配置一次.
| -- build.xml # 这个文件是每个项目都需要的 build 配置,
| 但是基本上也不需要改动了.
| -- build.properties # 这个文件为 build.xml 做配置,
| 与具体的项目相关.
| -- usage.txt # 这个文件说明了构建过程中的各种操作.
|
| -- lib/ # 这个目录放置一些公用的 jar 包免得重复.
| | -- checkstyle-all-3.4.jar # 用于代码检查
| | -- httpunit.jar # 用于 http 单元测试
| | -- junit.jar # 用于单元测试
| | -- servlet-api.jar # 用于编写 servlet 相关文件
|
| -- template/ # 这个目录是套项目模版, 一个项目开始时
| 将把这个目录的数据复制到项目目录下以便
| 直接使用.
| -- bin/ # 这个目录放置可执行文件
| -- build/ # 这个目录放置构建时需要的辅助文件
| | -- checkstyle_checks.xml # 这个文件是 checkstyle 的配置文件
| | -- java.header # 这个文件也是 checkstyle 配置文件
| 用于说明你的 java 文件的头部构造
| -- dist/ # 这个目录放置目标文件
| | -- classes/ # 编译后产生的 class 文件放在这
| | -- lib/ # 打包后产生的 jar 文件放这
|
| -- lib/ # 这个目录放置项目相关的 jar 文件
| -- src/ # 这个目录放置源代码
| -- build.xml # 这个文件是用于与 cvs 配合工作的配置文件
| -- main/ # 这个目录中放置主要的源代码
| -- test/ # 这个目录中放置测试代码

通用配置

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

1.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 开头的测试类
注意, 在 ant 的 lib 目录下要包含 junit.jar.
->
<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>

2. 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>

3.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 -> 默认的构建过程(自行修改)



http://blog.csdn.net/camry_camry/archive/2004/10/21/145752.aspx

分享到:
评论

相关推荐

    JAVA编程利器Eclipse.rar

    Eclipse是一款广受欢迎的开源集成开发环境...总的来说,Eclipse是Java开发者的得力助手,熟练掌握其使用方法和技巧,将使你的编程工作更加高效和愉快。通过阅读提供的资料,你将能够更好地利用Eclipse进行软件开发。

    YYANT游客协议1.01.zip

    《YYANT游客协议1.01》是一款针对YYANT平台的游客用户所制定的使用协议,旨在规范游客在平台上的行为,并明确双方的权利与义务。这份协议是易语言编写,易语言是一种中国本土开发的、面向对象的程序设计语言,以其...

    适用于idea2022.3.3版本各类插件

    **正文** IDEA,全称IntelliJ IDEA,是一款由JetBrains公司开发的著名Java集成开发环境,以其高效...通过合理选择和配置这些插件,开发者可以打造出一个完全符合个人习惯的个性化开发环境,让编程变得更轻松、更愉快。

    java环境配置详解

    Java环境配置是每个Java开发者必须掌握的基础技能,它涉及到JAVA_HOME、CLASSPATH和Path三个关键环境变量的设置。本文将详细解析这些环境变量的作用、配置方法以及安装...希望这篇详解能对你有所帮助,祝你编程愉快!

    kotlin-中文文档

    Kotlin是一种现代编程语言,它支持面向对象和函数式编程,适用于服务器端开发、Android应用开发以及其他多种平台。Kotlin由JetBrains公司设计,并于2016年成为Android官方支持的开发语言。Kotlin设计的目的是解决...

    Eclipse 常用技巧功能

    Eclipse是一款广泛使用的...熟练掌握这些Eclipse的技巧和功能,可以显著提高开发效率,减少出错的可能性,让编程变得更加高效和愉快。对于专业的开发人员来说,了解并充分利用Eclipse的这些特性是提升生产力的关键。

    jbuilder100例

    《JBuilder 100例:深度探索Java开发利器》 ...无论是初学者还是有经验的开发者,都能从中受益,让编程工作变得更加高效和愉快。在实际操作中,不断尝试、反复练习,才能真正将JBuilder的潜力发挥到极致。

    eclipse工具,用于java开发的系统开发环境

    Eclipse是一款广泛使用的开源集成开发环境(IDE),特别针对Java开发者设计。它的全名是Eclipse IDE for Java Developers,提供了一系列强大的工具,帮助程序员高效地进行Java应用的编写、调试和部署。Eclipse不仅...

    eclipse哈哈哈哈哈

    "哈哈哈哈哈"在这里可能是用户表达使用Eclipse时的愉快心情或者是对Eclipse喜爱的表达方式。 Eclipse的核心特性包括: 1. **项目管理**:Eclipse允许用户组织代码为项目,每个项目可以包含源代码、资源文件、配置...

    合肥市第二十届青少年信息学(计算机)竞赛小学试题.pdf

    合肥市第二十届青少年信息学(计算机)竞赛小学试题.pdf 本资源是一个来自合肥市第二十届青...本资源是一个非常有价值的信息学竞赛试题,涵盖了多种类型的编程题目,对于学生和编程爱好者来说是一份非常有价值的资源。

    buildr-1.4.23.zip

    Ruby是一种动态类型的编程语言,以其简洁的语法和对开发者友好而著称,这使得Buildr在编写构建脚本时更加高效和愉快。 首先,Buildr的核心在于其规则(Rules)机制。这些规则定义了如何处理项目中的文件和目录,...

    kotlin-docs.pdf

    - **使用Gradle/Maven/Ant**:这些构建工具都支持Kotlin,可以轻松管理项目依赖、编译等任务。 #### 示例与常见问题 - **示例**:官方文档提供了丰富的示例代码,帮助理解语言特性和最佳实践。 - **常见问题**:...

    晚安

    它的设计理念是让编程变得更加简单和愉快,使得代码更易于理解和维护。 在"anightinjapan-master"这个压缩包文件中,我们可以推测这可能是一个开源项目,以"AnightinJapan"为名,可能是关于日本文化、旅行或某种...

    Kotlin学习文档

    - **使用Ant**:虽然不如前两者常用,但Kotlin同样支持Ant。 - **Kotlin与OSGi**:Kotlin可以与OSGi这样的模块化框架一起使用。 - **编译器插件**:Kotlin支持编译器插件来扩展其功能。 #### 常见问题 - **FAQ**:...

    IDE开发工具Idea使用.pdf

    它的所有设计都旨在最大化开发者的生产力,并通过强大的静态代码分析与人机工程学设计,使开发过程既高效又愉快。IntelliJ IDEA的主要特征包括智能代码助手、代码自动提示、重构支持、J2EE集成、Ant和JUnit支持、CVS...

    WineAppReact:用于wineapp-api的React Native应用

    **WineAppReact** 是一个基于 **React Native** 框架开发的移动应用程序,它...在WineAppReact项目中,通过学习和实践上述知识点,开发者可以构建出功能完备、性能良好的移动应用,为葡萄酒爱好者提供愉快的使用体验。

Global site tag (gtag.js) - Google Analytics