我使用过的Linux命令之ant - 强大的Java开发构建工具

BitsPlayer 2010-11-03

我使用过的Linux命令之ant - 强大的Java开发构建工具

用途说明

ant严格说来,ant其实并非原生的Linux命令,但它是一个使用广泛、功能强大的跨平台构建工具程序,尤其是进行Java开发时,许多开源的Java项目都使用ant作为构建工具。ant命令一般情况下使用当前目录下的build.xml文件作为构建用的配置文件,具体配置文件怎么编写本文不讨论,这个绝对可以展开成一个系列。本文主要演示一下在Linux下怎么安装ant,以及常用方式等。

官方站点:http://ant.apache.org/

当前版本:1.8.1

安装步骤

安装条件

必须安装有jdk。下面是官方网站提供的两个注意事项:

Note: If a JDK is not present, only the JRE runtime, then many tasks will not work.

Note: Ant 1.8.* works with jdk1.4 and higher, Ant 1.7.* works with jdk1.3 and higher, Ant 1.6.* works with jdk 1.2 and higher, Ant 1.2 to Ant 1.5.* work with jdk 1.1 and higher.

下载文件

如果Linux机器不能上公网

第一步,获取安装包。到http://ant.apache.org/bindownload.cgi下载apache-ant-1.8.1-bin.tar.gz

第二步,上传到Linux机器。使用sftp或者ftp。

[root@bbqztweb setup]# ls -l

-rw-r--r--    1 root     root      8264796  5月  1 06:03 apache-ant-1.8.1-bin.tar.gz

如果Linux机器能上公网

可直接使用wget获取安装包,使用人人网上的镜像文件比较快。如下所示:

[root@bbqztweb setup]# wget http://labs.renren.com/apache-mirror//ant/binaries/apache-ant-1.8.1-bin.tar.gz

--21:08:03--http://labs.renren.com/apache-mirror//ant/binaries/apache-ant-1.8.1-bin.tar.gz

=>`apache-ant-1.8.1-bin.tar.gz'

正在解析主机labs.renren.com...123.129.232.121

Connectingtolabs.renren.com|123.129.232.121|:80...已连接。

已发出HTTP请求,正在等待回应...200OK

长度:8,264,796(7.9M)[application/x-gzip]

100%[========================================================================================>]8,264,796376.27K/sETA00:00

21:08:30 (314.87 KB/s) - `apache-ant-1.8.1-bin.tar.gz' saved [8264796/8264796]

[root@bbqztweb setup]# ls -l

-rw-r--r--    1 root     root      8264796  5月  1 06:03 apache-ant-1.8.1-bin.tar.gz

解压文件

[root@bbqztweb setup]# tar zxf apache-ant-1.8.1-bin.tar.gz

[root@bbqztwebsetup]#mkdir-p/opt/apache

[root@bbqztwebsetup]#mvapache-ant-1.8.1/opt/apache

[root@bbqztwebsetup]#ls/opt/apache

apache-ant-1.8.0  apache-ant-1.8.1  apache-tomcat-6.0.26  axis2-1.5.1

设置环境

编辑文件/etc/profile.d/ant.sh

[root@web jlib]# vim /etc/profile.d/ant.sh

#! /bin/sh

# 2007.01.22 ant 2010.03.18 2010.06.28
if [ -d /opt/apache/apache-ant-1.8.1 ]; then
        export ANT_HOME=/opt/apache/apache-ant-1.8.1
elif [ -d /opt/apache/apache-ant-1.8.0 ]; then
        export ANT_HOME=/opt/apache/apache-ant-1.8.0
elif [ -d /usr/apache/apache-ant-1.7.1 ]; then
        export ANT_HOME=/usr/apache/apache-ant-1.7.1
elif [ -d /usr/apache/apache-ant-1.7.0 ]; then
        export ANT_HOME=/usr/apache/apache-ant-1.7.0
elif [ -d /usr/apache/apache-ant-1.6.5 ]; then
        export ANT_HOME=/usr/apache/apache-ant-1.6.5
fi
if [ $ANT_HOME ]; then
        [ $PATH ] && PATH=$ANT_HOME/bin:$PATH || PATH=$ANT_HOME/bin
fi
 

重新登录

[root@web jlib]# echo $ANT_HOME

/opt/apache/apache-ant-1.8.1

[root@webjlib]#echo$PATH

/usr/kerberos/sbin:/usr/kerberos/bin:/opt/apache/apache-ant-1.8.1/bin:/usr/java/jdk1.6.0_20/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

[root@webjlib]#ant

Buildfile:build.xmldoesnotexist!

Build failed

[root@web jlib]# ant -version

ApacheAntversion1.8.1compiledonApril302010

[root@web jlib]#

常用参数

-f build.xml  指定不同于build.xml的构建配置文件。

-version 取版本号。

使用示例

示例一

[root@web web_server]# ls -l build.xml -rw-r--r-- 1 root root 5978 09-07 19:52 build.xml

[root@web web_server]# ant

Buildfile:/opt/web/web_server/build.xml

init:

[copy]Warning:Couldnotfindfile/opt/web/hyjc2/hyjc.jartocopy.

[copy]Warning:Couldnotfindfile/opt/hyjc2/hyjc.jartocopy.

compile:

[javac]/opt/web/web_server/build.xml:42:warning:'includeantruntime'wasnotset,defaultingtobuild.sysclasspath=last;settofalseforrepeatablebuilds

BUILDSUCCESSFUL

Totaltime:0seconds

[root@webweb_server]#

示例二指定build文件

[root@web web_admin]# ls -l tomcat-precompile.xml  

-rw-r--r--1rootroot309111-0311:33tomcat-precompile.xml

[root@webweb_admin]#ant-ftomcat-precompile.xml

Buildfile:/opt/web/web_admin/tomcat-precompile.xml

jspc:

[echo]CompileJSPin:/opt/web/web_admin/WebRoot/WEB-INF/src

[javac]/opt/web/web_admin/tomcat-precompile.xml:38:warning:'includeantruntime'wasnotset,defaultingtobuild.sysclasspath=last;settofalseforrepeatablebuilds

[javac]Compiling152sourcefilesto/opt/web/web_admin/WebRoot/WEB-INF/src

[javac]/opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/common/download_jsp.java

[javac]/opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/common/ip_jsp.java

[javac]/opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/common/upfile_jsp.java

[javac]/opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/common/upload_jsp.java

[javac]/opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/common/upstat_jsp.java

[javac]/opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/common/upstop_jsp.java

[javac]/opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/fcktest/sample02_jsp.java

    [javac] /opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/fcktest/sampleposteddata_jsp.java

此处省略掉了很多输出

    [javac] /opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/test/counter_jsp.java

[javac]/opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/wap/index_jsp.java

[javac]/opt/web/web_admin/WebRoot/WEB-INF/src/org/apache/jsp/wap/login_jsp.java

[javac]注意:某些输入文件使用了未经检查或不安全的操作。

[javac]注意:要了解详细信息,请使用-Xlint:unchecked重新编译。

dist:

BUILDSUCCESSFUL

Totaltime:6seconds

[root@web web_admin]#

问题思考

1. ant下的常用task有哪些,怎么编写?(比如:javac,java,jar,exec等)

2. 官网上提到还有rpm安装方式,有兴趣的读者可以试一下。

相关资料

【1】Spring--Java程序员的春天 Linux下ant的安装

【2】官方站点中的Ant任务 Ant Tasks

返回 我使用过的Linux命令系列总目录

相关推荐

知其然知其所以然 / 0评论 2010-10-14