分享
 
 
 

初学Ant.

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

工作需要,开始接触java,根据N年的C++经验,学习一门语言不外乎3件事,语法,编译部署工具,library。 java语法与C++和.Net差异不大,OO的概念也没有太大的不同;一些特殊的语法点,比如final,GC,reflect到处都是相关讨论。鉴于此,我将学习的重点放在公用库的使用和编译部署工具的学习上。

这是一个系列blog,先是一些java相关的编译,配置工具,然后是一些常用的java开源库,最后是eclipse。eclipse会是最终的落脚点,再次之前,本人需要一些java基础,现在,就从ant开始。

1. 下载,环境配置:

应该说,ant的文档对比大部分c++工具和库来说,是非常优秀的。从apache上下载Ant到编译,跑起来,不过花费了20分钟。当然,我知道一般使用binary就行了,但是既然Ant是一个build工具,观察一下它自己的编译过程总是有点意思的。 下载Ant,位置是http://ant.apache.org/,解压缩到d盘,目录结构如下:

d:/apache-ant-1.6.2/

bin/

docs/

etc/

lib

src/

一般关注bin/ant.bat就行了(windows平台),有兴趣的话可以分析一下ant.bat文件。

我注意到几行脚本:

:runAnt

if not "%CLASSPATH%"=="" goto runAntWithClasspath

"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%

goto end

显然,org.apache.tools.ant.launch.Launcher就是Ant的main函数文件,搜索一下src目录,果然在文件Launcher.java中找到了main函数。

2. 查看文档,制作配置文件:

核心是编写一个build.xml文件,也就是C++中的Makefile文件,只不过,个人感觉build.xml文件的编写比Makefile要简单不少,因为绝大部分工作Ant都已经做好了。废话少说,以下是我测试用的一个build.xml文件。我的测试工程目录结果如下:

d:/test/

src/

doc/

lib/

源代码都放在src目录下,改目录又有4个子目录,Cmd,Msg,Plugin,Ant本身内置目录的递给搜索,所以可以完全不考虑子目录的存在,当然,如果需要精细控制编译过程,如使用了lex之类的工具自动生成代码等,另当别论,这里只考虑最简单的情况。我手动书写的build.xml如下:

<project name="testAnt" basedir="." default="run">

<target name="init">

<mkdir dir="build">

</target>

<target name="compile" depend="init">

<javac srcdir="src" destdir="build">

<jar jarfile="test.jar" basedir="build"/>

</target>

<target name="run" depend="compile">

<java classname="test.ClassMain" jar="test.jar"/>

</target>

<target name="clear">

<delete dir="build"/>

<delete file="test.jar"/>

</target>

</project>

3. 分析这个简单的build.xml文件:

这个配置文件是一个project节点,3个属性,name表示porject的名字,basedir表示内部相对路径的起点,default表示ant默认的开始执行的target,对于上面的build.xml,如果用户在当前目录敲入ant,那么Ant首先找到"run"所对应的target,也就是第三个target,然后ant发现这个target依赖(depend)与"compile"所对应的target,那么把"run"入栈,先执行""compile"任务。 然后ant会发现"compile"又依赖于"init"任务,所以先将"compile"入栈,执行"init"。

"init"只是在项目根目录下建议一个目录。执行完"init"后,"compile"出栈,被执行。

"compile"分两步执行,首先,编译"src"目录下的所有.java文件(递给搜索),将生成的.class文件放入"build"目录(如果有递归子目录,会自动生成与原目录相同的目录层次).编译完成后,把build目录打包成一个jar文件。

"cimpile"执行完成,开始执行"run",实际上就是调用java.exe运行编译出来的项目。

当然,如果您需要清除以前的编译结果,可以简单输入ant clear。实际执行过程是"clear"对应的 target被执行,删除"build"目录和test.jar文件。

以上是本人开始学习ant的一个过程,总体感觉ant确实非常好使。当然,对于复杂的工程来说,配置文件的书写可能也会相对复杂,但是毕竟

比手工维护Makefile或者使用Automake管理Makefile来说,要轻松的太多了。

本人是java新手,如有错误,欢迎指正,欢迎B4。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有