Java基础系列之三:Apache Ant入门示例

 “Apache Ant是一个基于Java 的生成工具。据最初的创始人James Duncan Davidson 介绍,这个工具的名称是 another neat tool(另一个整洁的工具)的首字母缩写。

 

在初步使用过程中,对于Ant的作用,我觉得主要即辅助Java的编译,例如定义编译之前的准备工作、项目之间的依赖关系等等。≈.NET中的项目文件(.csproj)。

 

1.下载Ant,(http://ant.apache.org/bindownload.cgi

 

2.安装Ant

将下载的包apache-ant-1.8.0-bin.zip解压,放在适当的位置,如本例放置于:C:\apache-ant-1.8.0

 

为方便使用,还需设置OS环境变量,进入computer/properties/environment variables/user variables

添加一个用户变量: ANT_HOME=C:\apache-ant-1.8.0

修改用户变量 PATH,添加 %ANT_HOME%\bin

 

3.测试Ant安装

打开命令行,输入ant,如果能见到类似如下信息,证明Ant配置成功:

Buildfile: build.xml does not exist!

Build failed

 

4.新建测试项目

Eclipse中新建项目“HelloAntWorld”,代码如下:

 

代码
package  example;
 
import  java.sql.Connection;
import  java.sql.DriverManager;
import  java.sql.ResultSet;
import  java.sql.SQLException;
import  java.sql.Statement;
 
public   class  HelloWorld {
    
private   static  String ORACLEUSERNAME;
    
private   static  String ORACLEPASSWORD;
    
private   static  String ORACLEURL;
    
private   static  String ORACLEDRIVER;
 
    
public   static   void  main(String[] args)  throws  SQLException {
        ORACLEUSERNAME 
=   " emh " ;
        ORACLEPASSWORD 
=   " emh " ;
        ORACLEURL 
=   " jdbc:oracle:thin:@147.128.20.66:1521:ems " ;
        ORACLEDRIVER 
=   " oracle.jdbc.driver.OracleDriver " ;
        
//
        jdbc2Oracle();
    }
 
    
private   static  Connection getConn(String pUser, String pPwd, String pUrl, String pDriver)  throws  Exception {
        Class.forName(pDriver);
        
return  DriverManager.getConnection(pUrl, pUser, pPwd);
    }
 
    
private   static   void  jdbc2Oracle() {
        Connection conn 
=   null ;
        Statement stmt 
=   null ;
        ResultSet rs 
=   null ;
        
//
         try  {
            conn 
=  getConn(ORACLEUSERNAME, ORACLEPASSWORD, ORACLEURL, ORACLEDRIVER);
            stmt 
=  conn.createStatement();
            rs 
=  stmt.executeQuery( " select table_name from user_tables where rownum<10 " );
            
//
             while  (rs.next()) {
                String t 
=  rs.getString( 1 );
                System.out.println(t);
            }
        } 
catch  (Exception e) {
            e.printStackTrace();
        } 
finally  {
            
try  {
                rs.close();
                stmt.close();
                conn.close();
            } 
catch  (Exception e) {
            }
        }
    }
 
}

  

在根目录添加Antbuild.xml文件,内容如下:

 

代码
<? xml version="1.0" ?>
< project  name ="main"  default ="all"  basedir ="." >
   
< target  name ="all"  depends ="init,compile,jar"   >
   
</ target >
 
   
< target  name ="init" >
       
< property  name ="dirs.base"  value ="${basedir}" />
       
< property  name ="classdir"  value ="${dirs.base}/classes" />
       
< property  name ="src"  value ="${dirs.base}/src" />
       
< property  name ="lib"  value ="${dirs.base}/lib" />
       
< property  name ="outputjar"  value ="${dirs.base}/lib/HelloAntWorld.jar" />
       
< property  name ="classpath"  value ="${dirs.base}/lib/ojdbc6.jar" />
       
< mkdir  dir ="${classdir}" />
       
< mkdir  dir ="${lib}" />
   
</ target >
 
   
< target  name ="jar"  depends ="init" >
       
< jar  jarfile ="${outputjar}"  manifest ="${basedir}/HelloAntWorld.mf" >
              
< fileset  dir ="${classdir}"   />
       
</ jar >
   
</ target >
 
   
< target  name ="compile"  depends ="init" >
       
< javac  debug ="true"  srcdir ="${src}"
          destdir
="${classdir}"   />
   
</ target >
 
   
< target  name ="clean"  depends ="init" >
       
< delete  dir ="${classdir}" />
   
</ target >
</ project >

  

学习build.xml的文件最简单的方法是照猫画虎,从其它的项目中拿到build.xml,然后根据自己的需要增加或者简化。对build.xml来说,最核心的是定义任务即target,这里定义的每个target,将来可以在命令行调用Ant时使用,如“Ant clean”即执行上面定义的“clean”,实际即删除classes目录下的所有文件,以此类推。

 

5.使用Ant编译Java项目

EclipseAnt集成很好,真正开发时也可以借由Eclipse来调用Ant进行项目编译,只要做相应的设置即可。这里仍以命令行为例:

 

C:\DEV\HelloAntWorld>ant all

以下为命令输出。可以看到调用的是build.xml中定义的target all”,由于它的依赖(depends)中包括“init,compile,jar”,所以在命令输出中这三个依赖项依次执行完,最后执行“all”:

Buildfile: C:\DEV\HelloAntWorld\build.xml 

init: 

compile:

    [javac] C:\DEV\HelloAntWorld\build.xml:24: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable buil

ds

    [javac] Compiling 1 source file to C:\DEV\HelloAntWorld\classes 

jar:

      [jar] Building jar: C:\DEV\HelloAntWorld\lib\HelloAntWorld.jar 

all: 

BUILD SUCCESSFUL

Total time: 1 second

 

C:\DEV\HelloAntWorld>cd lib

C:\DEV\HelloAntWorld\lib>java -jar HelloAntWorld.jar

 

6.其它

有时候我们会从其它地方拷贝Java项目,如果这些项目未使用Ant,那么我们常常要新建项目然后导入,然后才能使用。如果使用了Ant,我们可以在Eclipse中选择File/New/Project../Java/Java project from existing Ant buildfile,然后选择相应的build.xml文件即可导入项目(有点像在.NET中使用项目文件.csproj,只不过.NET中更加简单)。

 

多提一句,实际由build.xml自动导入项目是依赖于build.xml中“javac”项中的“srcdir”,所以如果build.xml中没有任何target中包含“javac”项目(当然绝大多数情况下肯定会有),而你选择由build.xml导入项目,则会报错。

 

这是一个入门简例,关于Ant更加详细的内容,参见文件:Apache Ant Go Through.pdf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值