- 浏览: 468390 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
mrshen:
很棒,在其他大神的博客上理清了思路看懂之后,来lz这里用例子学 ...
RED-BLACK(红黑)树的实现TreeMap源码阅读 -
a939639017:
yanf4j check不下来 ?
Java nio 2.0 AIO -
hellostory:
又是抄来的 - -
mysql分表方案 -
davidluoye:
为什么不说下支持的数据库呢?
模糊查询的优化 -
oliveevilo:
表示没看懂
Synchronized和java.util.concurrent.locks.Lock的区别
ant是jakarta一个非常好的OpenSource子项目,是基于java的编译工具。下面简单介绍一下在linux环境中如何安装ant:
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
Buildfile: 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="${build.dir}/webapps/WEB-INF/src/java"/> <property name="build.dest" value="${build.dir}/webapps/WEB-INF/classes"/> <property name="build.lib" value="${build.dir}/webapps/WEB-INF/lib"/> <property name="build.ext" value="./lib"/> <property name="build.tpl" value="${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="${build.dir}/dist"/> <property name="dist.dir" value="${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" description="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>
发表评论
-
LINUX快捷键
2012-04-16 23:10 20621.关于终端的快捷键: T ... -
总结configure,pkg-config和PKG_CONFIG_PATH
2012-02-09 14:47 1479我想大家都在linux下用 ... -
SCP 使用
2012-01-17 13:42 1001http://wenku.baidu.com/view/181 ... -
ctags
2011-09-25 18:15 1049Vi大家都很熟悉,某些情况下它是我们在Linux下唯一可用的文 ... -
gcc使用
2011-09-13 09:49 10221. gcc –Wall(打开编译警告) hello.c – ... -
linux下jni编程指南之——HelloWorld
2011-09-06 15:55 1414Posted on 2011-05-14 08:40 Brai ... -
Linux下软件安装方法总结
2011-08-31 21:03 864一、rpm包安装方式步骤:1、找到相应的软件包,比如sof ... -
Linux下C++开发初探
2011-08-31 20:56 24051.开发工具 Window ... -
Enabling Swap Space都要停留5分钟左右.
2011-08-21 22:29 1518前段时间安装Linux后,在启动时,每次到Enabling S ... -
C++中的.hpp文件与.h文件
2011-08-15 09:37 44401、是Header Plus Plus 的 ... -
python 下载
2011-07-22 16:43 1064你可以访问http://www.python.org/ 你可以 ... -
解决Fedora 10 root登陆密码无法验证问题
2011-07-22 10:31 1823<!-- 正文开始 --> 开机以roo ... -
LINUX常用命令
2011-07-21 10:17 15011. 重新发布下环境变 ... -
Linux下jdk的安装 卸载
2011-07-04 21:10 868这两天闲着没事,就用VMware装了个Linux(RedHat ... -
REDHAT LINUX企业版更改IP地址,网关,DNS和MAC地址----
2011-07-01 20:56 2605Redhat 企业版更改IP地址,网关,DNS和MAC地址 ... -
ssh自动登陆RSA,DSA
2011-07-01 18:59 2459原理: 首先在客户端上 ... -
DenyHosts
2011-06-20 10:38 1610DenyHosts是Python语言写的 ... -
RSYNC使用1
2011-04-14 20:56 975rsync 有什么突出优点呢 ... -
linux 计划任务
2011-03-09 16:04 986利用apache的.htaccess访问机制可以保护ad ... -
sed 命令
2010-12-01 22:00 692Java代码 1. Sed简介 ...
相关推荐
ANT安装与使用教程 ANT(Another Neat Tool)是一款基于Java的自动化构建工具,广泛应用于软件开发、测试和部署过程中。以下是ANT安装与使用教程,旨在帮助项目部署人员快速掌握ANT的安装和基本使用。 硬件环境 ...
- 设置环境变量`ANT_HOME`,将其值设为Ant的安装目录,如`C:\tools\apache-ant-X.Y.Z`。 - 将 `%ANT_HOME%\bin` 添加到系统的`PATH`环境变量中,这样可以在任何路径下运行Ant命令。 2. **Linux版安装** - 在...
### Ant安装编译操作手册知识点解析 #### 一、引言 - **编写目的**:本文档旨在指导软件发布人员如何正确安装与配置Apache Ant,解决在安装与使用过程中可能遇到的问题,确保能够顺利地使用Ant对Flex/Java工程项目...
### Ant安装与配置详解 Ant(Apache Ant)是一款开源的Java构建工具,广泛应用于Java项目的自动化构建、编译、测试和部署等流程中。对于初次接触Web开发的新手来说,熟练掌握Ant的安装与配置是必不可少的一环。下面...
本指南将深入探讨Ant工具的使用,帮助开发者高效地管理项目构建。 一、Ant概述 Ant是一个开源的Java构建工具,其设计灵感来源于Unix的Make工具。它通过XML配置文件(通常名为build.xml)来定义任务和目标,使得构建...
### Ant的下载、安装与基本使用详解 #### 一、Ant简介 Apache Ant是一个开源的、跨平台的Java编译工具,它使用XML格式的构建文件(通常为`build.xml`)来描述项目的构建过程。Ant能够自动化执行一系列任务,如编译...
在本文中,我们将详细介绍如何下载和安装Ant。 **一、Ant的下载** 1. 访问官方网站:首先,你需要访问Apache Ant的官方网站,地址是`https://ant.apache.org/`。在网站上,你可以找到最新版本的Ant以及其他相关...
2. **Ant的安装与配置**:了解如何下载Ant的发行版,配置环境变量,以及设置ANT_HOME以使系统能够找到Ant的库文件。 3. **构建文件结构**:学习如何编写build.xml文件,包括定义项目(project),目标(target),...
`ANT_HOME`应指向Ant的安装目录,而`PATH`环境变量需包含`ANT_HOME/bin`子目录,这样在命令行中就可以直接运行`ant`命令了。如果还安装了JDK,设置`JAVA_HOME`环境变量也是有益的,它指示了JDK的安装位置。 运行Ant...
4. **跨平台**:由于其基于Java,Ant可以在任何安装了Java运行环境的平台上运行,这极大地方便了跨平台的开发工作。 在构建过程中,Ant使用目标(target)来组织任务,目标之间可以有依赖关系。例如,一个常见的...
"ant+初步.doc"可能会涵盖Ant的安装、环境配置以及第一个简单的构建文件的创建。一个基本的构建文件会包含项目信息、属性定义、任务声明和目标设定。例如,你可以定义一个目标用于清理构建产物,另一个目标用于编译...
在 Linux 环境中安装 Ant 需要以下步骤: 1. **下载**:首先从 Apache Ant 的官方网站(http://ant.apache.org/bindownload.cgi)获取最新版本的 Tar 包,例如 `apache-ant-1.6.2.tar.gz`。Windows 用户则可下载 ...
需要注意的是,如果不想将Ant安装在/usr/local目录下,而是选择在用户的个人目录,可以简化上述步骤,只需获取root权限,修改bashrc文件并添加环境变量。这样不会涉及到权限和软连接的问题。 总之,正确安装和配置...
### ant安装搭建安装文档 #### 一、简介 Apache Ant 是一个 Java 平台上的构建工具,主要用于自动化软件编译、测试、部署等任务。它使用 XML 来描述构建过程,支持跨平台运行(Windows、Linux等)。本文档将详细...
Ant是Java项目管理和自动化构建的重要工具,尤其在早期的Java EE应用开发中广泛使用。本文将深入探讨Ant的使用指南和教程,帮助你掌握其基本概念和实际操作。 1. Ant基本概念: - 构建文件:Ant的核心是构建文件,...
如果你选择在Eclipse IDE中使用Ant,你不需要单独安装Ant,因为Eclipse已经包含了Ant。如果你还没有安装Eclipse,可以从Eclipse官网下载并安装。 #### 四、构建文件的基本结构 Ant使用XML格式的构建文件来定义构建...