1.下载
从 http://ant.apache.org/bindownload.cgi 可以下载最新的tar包:apache-ant-1.6.2.tar.gz,如果是windows环境则是zip文件,解压后,在系统环境变量里设置 ANT_HOME为f:\project\tools\apache-ant-1.6.2,并将f:\project\tools\apache- ant-1.6.2\bin目录添加到classpath中,然后就可以使用了
2./l安装,解压到/usrocal下
> tar zxpvf apache-ant-1.6.2.tar.gz
> ln -s apache-ant-1.6.2 ant
3.设置环境
将ANT_HOME设置到当前用户的.bash_profile文件/home/admin/.bash_profile
[admin@tangtang home]$ su - admin
[admin@tangtang home]$ vi .bash_profile
export ANT_HOME=/usr/local/ant
export PATH=/usr/local/ant/bin:$PATH
如果是windows环境,需要设置%ANT_HOME%,并把%ANT_HOME%\bin目录全路径加入到%path%中
4.测试
用ant命令测试运行情况
[admin@tangtang home]$ ant
Build build.xml does not exist!
Build failed
[admin@tangtang home]$ ant -version
Apache Ant version 1.6.2 compiled on July 16 2004
若出现这样的错误:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Launcher
这是linux系统默认安装了一些ant的lib,修改 /etc/ant.conf中 ANT_HOME=/usr/share/ant 为你正确安装ant的地址,如 /usr/local/ant
5、build脚本
如果是在linux环境中,下面是build脚本的一个范例:
#build脚本
#! /bin/sh
# 进入到上级目录
cd `dirname $0`/..
# 获取当前目录为PROJECT_HOME
PROJECT_HOME=`pwd`
# 设置JAVA_HOME
export JAVA_HOME=/usr/cyber/java
# 得到CLASSPATH
CLASSPATH1=$CLASSPATH
# 添加CLASSPATH
CLASSPATH=${PROJECT_HOME}\webapps\WEB-INF\conf:${PROJECT_HOME}\webapps\WEB-INF\classes:$CLASSPATH
# ant build,-buildfile 参数,是使用自定义的build.xml文件,$@是参数数组
/usr/local/ant/bin/ant -buildfile ${PROJECT_HOME}/build/build.xml "$@"
# build脚本结束
如果是在windows环境中,下面是build.bat脚本的一个范例:
# build.bat
# 关闭echo显示
@echo off
# 设置%JAVA_HOME%
if "%JAVA_HOME%"=="" set JAVA_HOME=f:\tools\java
# 设置%ANT_HOME%
if "%ANT_HOME%"=="" set ANT_HOME=f:\tools\ant
# 设置PROJECT_HOME
set PROJECT_HOME = %CD%\..
set CLASSPATH_BAK=%CLASSPATH%
set CLASSPATH=
# 执行build
%ANT_HOME%\bin\ant.bat -buildfile ..\build\build.xml %1 %2 %3 %4 %5 %6 %7 %8 %9
6、build配置文件
在${PROJECT_HOME}/build目录下面,需要定义两个文件,一个是build.properties,一个是build.xml
build.properties文件定义了build的一些常量
# build.properties
project = tangtang
version = 1.1.1
# 采用classic编译,即采用ant编译
build.compiler = classic
# 采用jikes编译
#build.compiler = jikes
year = 2004
debug = on
optimize = on
deprecation = on
os = linux
author = tangtang
email = syvin_tom@hotmail.com
url = www.tangtang.org
company = tangtang.org
build.xml文件是ant编译的主要配置文件,ant功能强大,需要通过相应的配置项来表现。
<?xml version="1.0" encoding="gb2312"?>
<!-- Build file for project -->
<project name="cyber" default="jar" basedir=".">
<property file="${user.home}/.ant.properties" />
<!-- ant build properties -->
<property file="build.properties"/>
<property name="build.dir" value=".."/>
<property name="build.src" value="/blog/${build.dir}/webapps/WEB-INF/src/java"/>
<property name="build.dest" value="/blog/${build.dir}/webapps/WEB-INF/classes"/>
<property name="build.lib" value="/blog/${build.dir}/webapps/WEB-INF/lib"/>
<property name="build.ext" value="./lib"/>
<property name="build.tpl" value="/blog/${build.dir}/webapps/WEB-INF/templates"/>
<property name="build.encoding" value="gb2312"/>
<property name="src.java.dir" value="../src/java"/>
<property name="javadoc.destdir" value="../docs/api"/>
<property name="javadoc.link" value="http://www.tangtang.org/java/docs/api/"/>
<property name="final.name" value="${project}-${version}"/>
<property name="dist.root" value="/blog/${build.dir}/dist"/>
<property name="dist.dir" value="/blog/${dist.root}/${final.name}"/>
<path id="classpath">
<pathelement path="${java.class.path}/"/>
<fileset dir="${build.lib}">
<include name="*.jar"/>
</fileset>
<fileset dir="${build.ext}">
<include name="*.jar"/>
</fileset>
</path>
<property name="classpath" refid="classpath"/>
<!-- =================================================================== -->
<!-- prints the environment -->
<!-- =================================================================== -->
<target name="env">
<echo message="build.compiler = ${build.compiler}"/>
<echo message="java.home = ${java.home}"/>
<echo message="user.home = ${user.home}"/>
<!--echo message="java.class.path = ${java.class.path}"/-->
<echo message="classpath = ${classpath}"/>
</target>
<!-- =================================================================== -->
<!-- Prepares the build directory -->
<!-- =================================================================== -->
<target name="prepare" depends="env">
<tstamp/>
<filter token="year" value="${year}"/>
<filter token="version" value="${version}"/>
<filter token="date" value="${DSTAMP}"/>
<!--
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.dest}"/>
<mkdir dir="${build.src}"/>
-->
<!-- chose a class that's from j2ee.jar -->
<available classname="javax.sql.DataSource"
property="J2EE.present">
<classpath refid = "classpath"/>
</available>
</target>
<target name="J2EE-error" depends="prepare" unless="J2EE.present">
<echo>
********************************************************
**
** J2EE has not been found and is needed for the target
** you have chosen
**
** Since CLASSPATH is an evil idea, just link or drop
** a copy of your j2ee.jar into build/lib directory.
**
*********************************************************
</echo>
</target>
<target name="init">
<echo>
build init
build compile
</echo>
<mkdir dir="${build.dir}/data"/>
<mkdir dir="${build.dir}/logs"/>
<mkdir dir="${build.dir}/dist"/>
</target>
<target name="jar" depends="compile">
<mkdir dir="${dist.root}"/>
<delete dir="${dist.root}/${project}-${version}.jar"/>
<jar jarfile="${dist.root}/${project}-${version}.jar">
<fileset dir="${build.dest}">
<include name="org/tangtang/**"/>
<exclude name="org/tangtang/test/**"/>
</fileset>
</jar>
</target>
<target name="srcjar" depends="prepare">
<delete dir="${dist.root}/${project}-${version}-src.jar"/>
<jar jarfile="${dist.root}/${project}-${version}-src.jar">
<fileset dir="${build.src}">
<include name="org/tangtang/**"/>
<include name="org/tangtang/test/**"/>
</fileset>
</jar>
</target>
<target name="tpl" depends="env">
<jar jarfile="${dist.root}/${project}-${version}-tpl.jar">
<fileset dir="${build.tpl}">
<include name="tangtang/**"/>
</fileset>
</jar>
</target>
<target name="javadocs">
<mkdir dir="${build.dir}/docs/api"/>
<javadoc
sourcepath="${build.src}"
overview="${build.dir}/docs/overview.html"
packagenames="org.tangtang.*"
destdir="${build.dir}/docs/api"
encoding="${build.encoding}"
author="true"
version="true"
use="true"
link="${javadoc.link}"
windowtitle="${project} ${version} API"
doctitle="${project} ${version} API"
bottom="Copyright © ${year} tangtang.org. All Rights Reserved."
>
<tag name="todo" deion="To Do:"/>
</javadoc>
</target>
<target name="poolman" depends="prepare">
<jar jarfile="${dist.root}/poolman.jar">
<fileset dir="${build.dest}">
<include name="com/codestudio/**"/>
</fileset>
</jar>
</target>
<target name="nightly" depends="prepare">
<tstamp/>
<jar jarfile="${dist.root}/nightly/${project}-${version}-${DSTAMP}-src.jar">
<fileset dir="${build.src}">
<include name="org/tangtang/**"/>
</fileset>
</jar>
</target>
<target name="compile" depends="prepare">
<mkdir dir="${build.dest}"/>
<!-- 检查依赖性 -->
<depend srcdir="${build.src}"
destdir="${build.dest}"
cache="${build.dest}">
<classpath refid="classpath"/>
</depend>
<javac srcdir="${build.src}"
destdir="${build.dest}"
debug="${debug}"
deprecation="${deprecation}"
optimize="${optimize}">
<classpath refid="classpath"/>
</javac>
</target>
<target name="clean">
<delete>
<fileset dir="${build.dest}">
<include name="**/*.class"/>
</fileset>
</delete>
</target>
<target name="clean_dist">
<delete>
<fileset dir="${dist.root}" includes="*"/>
</delete>
<delete dir="${dist.dir}" quiet="false"/>
</target>
<target name="deploy" depends="jar">
<mkdir dir="${dist.dir}/data"/>
<mkdir dir="${dist.dir}/logs"/>
<copy todir="${dist.dir}/bin">
<fileset dir="${build.dir}/bin">
<include name="*"/>
</fileset>
</copy>
<fixcrlf srcdir="${dist.dir}/bin" eol="lf" eof="remove"
includes="**/*"
excludes="**/*.bat"
/>
<copy todir="${dist.dir}/conf">
<fileset dir="${build.dir}/conf">
<include name="templates/*"/>
<exclude name="*"/>
<exclude name="**/*.bak"/>
<exclude name="**/bak/**"/>
</fileset>
</copy>
<copy todir="${dist.dir}/build">
<fileset dir="${build.dir}/build">
<include name="*"/>
<include name="lib/*"/>
<exclude name="**/*.bak"/>
<exclude name="**/bak/**"/>
</fileset>
</copy>
<copy todir="${dist.dir}/templates">
<fileset dir="${build.dir}/templates">
<include name="**/*.vm"/>
<exclude name="**/*.bak"/>
<exclude name="**/bak/**"/>
</fileset>
</copy>
<copy todir="${dist.dir}/webapps/html">
<fileset dir="${build.dir}/webapps/html">
<include name="**/*"/>
<exclude name="**/*.bak"/>
<exclude name="**/bak/**"/>
</fileset>
</copy>
<copy todir="${dist.dir}/webapps/applet">
<fileset dir="${build.dir}/webapps/applet">
<include name="**/*"/>
<exclude name="**/*.bak"/>
<exclude name="**/bak/**"/>
</fileset>
</copy>
<copy todir="${dist.dir}/webapps/icons">
<fileset dir="${build.dir}/webapps/icons">
<include name="**/*.gif"/>
<include name="**/*.jpg"/>
<exclude name="**/*.bak"/>
<exclude name="**/bak/**"/>
</fileset>
</copy>
<copy todir="${dist.dir}/webapps/images">
<fileset dir="${build.dir}/webapps/images">
<include name="**/*.gif"/>
<include name="**/*.jpg"/>
<exclude name="**/*.bak"/>
<exclude name="**/bak/**"/>
</fileset>
</copy>
<copy todir="${dist.dir}/webapps/WEB-INF/">
<fileset dir="${build.dir}/webapps/WEB-INF/">
<include name="**/*"/>
<exclude name="classes/**"/>
<exclude name="conf/*"/>
<exclude name="src/**"/>
</fileset>
</copy>
<jar jarfile="${dist.root}/${project}-${version}-war.jar">
<fileset dir="${dist.dir}">
<include name="**/*"/>
</fileset>
</jar>
</target>
<target name="conf">
<delete>
<fileset dir="${build.dir}/conf" includes="*"/>
<fileset dir="${build.dir}/webapps/WEB-INF/conf" includes="*"/>
</delete>
<filter filtersfile="deploy.properties"/>
<copy todir="${build.dir}/conf" filtering="true">
<fileset dir="${build.dir}/conf/templates">
<include name="*"/>
</fileset>
</copy>
<copy todir="${build.dir}/webapps/WEB-INF/conf" filtering="true">
<fileset dir="${build.dir}/webapps/WEB-INF/conf/templates">
<include name="*"/>
</fileset>
</copy>
</target>
</project>
http://www.roboticfan.com/blog/user_2005/104/archives/2009/2009619122635.shtml
分享到:
相关推荐
一旦Ant安装完成,用户就可以在终端中通过`ant`命令执行构建文件。例如,如果构建文件位于当前目录,只需运行`ant`即可。若要指定特定的目标,如"compile",则运行`ant compile`。 Ant的构建文件`build.xml`包含了...
通过以上步骤,你可以在 Linux 环境中成功安装和配置 Ant,编写构建脚本,并管理构建过程。Ant 提供了一个灵活且强大的框架,允许开发者通过 XML 描述构建过程,极大地提高了项目构建的自动化程度和可维护性。在实际...
在Linux系统中,Java Development Kit ...总的来说,Linux下安装和配置JDK主要涉及查找现有JDK、卸载旧版本、安装新版本以及设置环境变量。遵循这些步骤,开发者就能在Linux环境中顺利地使用Java进行开发和运行程序。
ANT安装配置 ANT的安装配置过程包括下载和解压缩ANT安装包、配置环境变量和PATH变量三个步骤。 1. 下载apache-ant-1.8.3-bin.zip安装包,并解压缩到D:\Program Files目录下,重命名为apache-ant-1.8.3。 2. 配置...
在Windows环境下,通常会有图形化的安装程序;在Linux或Unix系统中,可以通过包管理器如apt-get或yum进行安装。 4. **配置CVS**:安装完成后,需要配置CVS的一些环境变量,如`CVSROOT`,这个变量指定你要连接的CVS...
总之,Apache Ant 1.9.15是在Linux环境下进行Java项目构建的重要工具,它的灵活性和强大的XML驱动的任务定义使得它能够适应各种复杂的构建需求。解压并配置好Ant后,开发人员可以轻松地进行编译、测试和部署工作。
Ant是Apache软件基金会下的一个项目,它是一个基于Java的构建工具。"Ant ant ant antant ant ant antant ant ant ant" 这个描述可能是在强调Ant在项目构建过程中的重复性和不可或缺性,暗示着它在工程中的频繁使用和...
【Linux下安装配置Maven】 在Linux系统中,同样需要先确保安装了JDK。然后,下载Maven的Linux二进制包并解压缩到合适的目录,如`/usr/local/maven`。接下来,设置环境变量,编辑`~/.bashrc`或`~/.bash_profile`,...
3. **移动到适当目录**:解压后,将Ant安装到一个合适的目录,如`/usr/local`或`/opt`。使用`mv`命令移动文件夹: ``` sudo mv apache-ant-1.8.3 /usr/local/ant ``` 4. **配置环境变量**:为了让系统能够全局...
【OpenMeetings在Linux下的安装配置】 OpenMeetings是一款开源的在线会议系统,适用于企业级的远程协作和视频会议需求。在Linux环境下安装配置OpenMeetings需要满足一定的硬件和软件条件,以及安装一系列依赖软件。...
如果安装成功,你应该能看到Ant的版本信息,证明已经配置正确。 **四、使用Ant** 1. 构建文件:Ant的核心是构建文件`build.xml`,它使用XML语法定义了构建过程。创建一个`build.xml`文件,定义你需要的任务,如`...
通过以上步骤,可以完成在Linux环境中JDK、Apache Ant和Apache Web服务器的经典配置。这些配置不仅能够帮助用户顺利进行开发工作,同时也为实际应用部署提供了坚实的基础。对于想要深入了解Linux系统管理和软件配置...
下面将详细介绍Ant的基本概念、安装配置以及使用方法。 **Ant的基本概念** Ant的全称是Apache Ant,它的核心理念是通过XML描述的构建脚本来自动化Java项目的构建过程。在XML文件(通常名为`build.xml`)中,开发者...
在 Linux 下安装 GDAL 需要先下载 GDAL 的源码包,然后将其解压到指定目录下。在 Ubuntu 中,可以使用 apt-get 安装 g++,然后使用 ./configure 命令来配置 GDAL。在配置完成后,可以使用 make 命令来编译 GDAL,...
"Linux 下配置和应用 Lucene" 在本文中,我们将详细介绍如何在 Red Hat Linux 9 下配置和应用 Lucene 2.9.1。这篇文章将对 Lucene 的安装、配置和应用进行详细的讲解,旨在为读者提供一个清晰、详细的指南。 环境...
本文将详细讲解"Linux_Ant主题"的相关知识点,以及如何在Kali Linux系统中安装和使用这一主题。 首先,"Linux_Ant主题"是一个针对Linux桌面环境设计的视觉风格,旨在为用户提供独特的界面体验。它可能包含壁纸、...
5. **解压与安装**:在Linux环境下,用户需要使用`tar`命令解压缩文件,如`tar -zxvf apache-ant-1.10.8-bin.tar.gz`。解压后,可以将Ant的bin目录添加到PATH环境变量中,以便在任何目录下都可以运行`ant`命令。 6....
例如,要编译一个Android项目,用户需要配置Ant知道SDK的位置(通过`ANDROID_HOME`环境变量),然后运行`ant release`或`ant debug`命令,这将分别生成签名的Release APK和未签名的Debug APK。 总结起来,Apache ...