java

位置:IT落伍者 >> java >> 浏览文章

ant - java 构建工具 - hello ant


发布日期:2023年02月22日
 
ant - java 构建工具 - hello ant

管理你的代码doc文件编译配置等开发工作你是怎末做的自己管理源目录编译文件copy实施在window写bat在unix写shell?

可惜我不怎末会写所以我制作一个ejb的过程是这样的写代码>写个bat编译代码>组织文件(ejbjarxmljbossxml)>压缩文件生成jar文档>实施(还有同样的测试过程)(为甚末不用jbuild?)

这中间每次修改都要经过重复的无数次手工copypaste过程好累好花时间可我确实不想去学脚本编写unixlinux下我还得重学太累

如果你和我一样希望自动执行预定义的动作却又不想太累那末我觉得ANT工具不错它可以以相同的用法用在不同平台(跨平台)它是JAVA做的免费的开源的据说网上已经成了事实的JAVA构建标准还听说高手都用它 ^_^

我花了天时间才掌握了它的基本用法我希望你能通过我的文章和试验花半天时间就掌握它

内容

下载安装

hello ant

hello ant 进级

参考及下载

下载安装

又下载?又是一大堆参数变量?:( 它是apache的java子项目jakarta的子项目你可以选择当前的版本目前我是window版以下就用它讲

解压后ant_home用来方便访问并确保你也设置了java_home

set ant_home=D:\java\kit\ant\jakartaant这是我的目录

就这些简单吧

hello ant

我们要开发一个java类其内容只有一句输出hello ant字符串并使用ant完成编译和运行工作这个例子只是为了跑通ant不附加多余的东西

下图为文件组织请建立相应的目录并编写HelloAntjava

educitycn/img_///gif>

按照人家老外的文件组织规则咱也照搬

helloantHelloAntjava

package helloant;

public class HelloAnt{

public static void main(String[] args){

Systemoutprintln(hello antant 的第一次接触好棒!);

}

}

在项目根目录(helloant\)写个文件ant执行配置文件buildxml

buildxml

<?xml version=encoding=GB ?>

<! 一个项目可包含很多任务组(target) >

<project default=main basedir=>

<! 项目中的一个任务组可包含很多任务(task:javacjava) >

<target name=main>

<!编译>

<javac srcdir=src\main\hello\ant destdir=build\classes/>

<!运行>

<java classname=helloantHelloAnt>

<classpath>

<pathelement path=build\classes/>

</classpath>

</java>

</target>

</project>

ok一切大功告成还没有运行它

dos下进入helloant的目录即buildxml所在的目录我们要用ant工具执行它 执行: %ant_home%/bin/ant file buildxml 用ant工具执行当前目录下的配置文件buildxml 或ant file buildxml你如果设置%ant_home%/bin到path中这次ok了这是答案命令提示符窗口

D:\temp\helloant>ant file buildxml

Buildfile: buildxml

main:

[javac] Compiling source file to D:\temp\helloant\build\classes

[java] hello antant 的第一次接触好棒!

BUILD SUCCESSFUL

Total time: seconds

D:\temp\helloant>

检查一下build/classes目录看到编译过的文件就在这里:

build/classes/hello/ant/HelloAntclass

hello ant 进级

(此段比较废话可以略过)

你也许会说这末简单的工作写个批处理不就得了又xml又ant的把我的时间都浪费完了我用jbuild或webShpere不就得了怎末说你才明白呢?反正网上开源项目大多数都用ant你总不能给人家个*jpx吧而且这样的工具太贵受不了(当然用D的兄弟不怕^_^ )而且ant可以让你明确的管理和自动化所有的东西:编译实施测试稍微麻烦一点点但节约你以前花在零碎的copypaste上的时间而且我发现管理代码的质量有所提高

我们要改进buildxml让它做更多的事情

定义全局变量

初始化主要是建立目录

编译(已有)

打包为jar

建立API documentation

生成distribution产品

凡事都讲究平衡你要ant给你做更多事当然要累一点点不过只用累一次以后的代码修改后的构建都是一键式完成我们制作一个hello的简单例子你可以自己做jee的练习

我们要扩充目录结构使它更像回事

ant处理编译之前的目录

educitycn/img_///gif>

ant处理之后的目录

  educitycn/img_///gif>

图中\src\docs\lib是自己组织的文件结构\build\dist是ant动态生成的成品

\src 源文件java源script源jsp源xml配置

\src\main java源

\src\script windowunixliunx的执行script我们的简单只有一个

runbat:java helloantHelloAnt

\docs手写说明文档

\lib 程序所需类库的jar比如jeejarmailjar

\build 用ant动态生成的构建目录

\build\classes编译的类文件

\build\docs copy \docs的手写说明文档和ant生成的api文档

\build\lib 放置我们自己的HelloAntclass打包成品helloantjar

\dist\bincopy \src\script 得执行文件

\dist\docscopy \build\docs 的文档

\dist\lib 除了copy \build\lib下的helloantjar外

还应copy \lib的程序所需jar这里我们没有

以上是我学老外的文件组织大家可以按照自己的爱好组织

我们编写必要的文件

helloant HelloAntjava

已有

\src\scriptbat

@echo off

echo ========================================================

echo 请先设置 Environment

echo

echo JAVA_HOME: %JAVA_HOME%

echo ======================================================

%java_home%\bin\java classpath \lib\helloantjarhelloantHelloAnt

pause

\docs\l 随便写一个手写的文档

hello ant 软件项目手册docs

访问api文档

\buildxml 配置文件

<?xml version=encoding=GB ?>

<!

=======================================================================

helloant 项目 学习ant工具的第个build file

参照ant的jakartaantalpha的buildxml

Copyright (c) The Neusoft Software FoundationAll rights

reserved

=======================================================================

>

<!

文档结构为:

<project>

<property/> 全局变量的定义

<property/>

<target name=> 任务组(tasks)

<javac></javac> 一项javac任务

<oneTask></ontTask> 一项其它任务

</target>

<target name=>

<javac></javac>

<oneTask></ontTask>

</target>

</project>

project代表一个项目

default:运行到名称为dist的target(任务组)

basedir:基准路径

>

<project default=dist basedir=>

<!

===================================================================

定义属性(property tasks)

最好把用到的路径呀名称呀都在这里定义成全局变量

定义

<property name=a value=hello/>

以后就可以这样用它

<property name=b value=${a}/b/>

现在:b==hello/b

===================================================================

>

<!主要的系统环               

上一篇:Spring整合Hessian

下一篇:MyEclipse真的整合了SSH吗?