学习antx两天时间,主要想总结一下:
1、安装需要注意的地方
2、该工具解决的问题
3、常用的命令
一 、安装需要注意的地方
a). 前提:安装JDK,并设置系统环境变量JAVA_HOME,指向JDK安装目录。
b). 获取antx:svn co http://svn.alibaba-inc.com/repos/opentech/antx/trunk antx,或者使用TortoiseSVN获取。
c). build antx:执行build.bat或build.sh,执行完之后,会生成dist/antx目录。
d). 设置环境变量:设置系统环境变量ANTX_HOME,指向生成的dist/antx目录,并将%ANTX_HOME%/bin目录加入到PATH环境变量中。
e). 设置repository位置:
这个需要说明repository有三个不同的作用
为解决不同类型的项目之间的关联关系不同,构建方式也不同的问题,antx实现了三级repository。
第一级(local, 所谓的1st party类库)
a) 位置:$HOME\.antx\repository $HOME说明:这个是电脑登录用户的目录,一般存放在C盘
b) 用于关联关系较紧密的子项目
例如:同一个team在同一时间开发的若干子项目
c) 该repository的内容只存在于本地,不需要被共享
第二级(project, 所谓的2nd party类库)
d) 位置(默认):$HOME\.antx\repository.project 这个目录可以修改在别的路径上在后面说明repository.project是自己新建的文件夹目录
e) 用于关联关系较疏远的子项目
例如:不同team或不同时期开发的子项目
f) 该repository的内容需要被team间共享
g) 该repository的内容通常需要注明版本号
第三级(external, 所谓的3rd party类库)
h) 位置:antx\repository或者antx\..\..\repository 在安装的时候会新建这个目录,并且把相关的三方类库都加载进来
i) 用于定义第三方提供的类库
例如:Apache Jakarta类库
j) 该repository随着antx更新而更新
k) 该repository中的内容可以被注明版本号,也可以不注
那么如何修改路径呢?
在电脑登录的用户路径下如我的电脑:C:\Documents and Settings\hewen.pt在这个路径下,新建antx.properties文件,如果安装的时候就有这个文件就不需要新建。
然后在文件里面添加要指定的路径如:我想修改第二级和第三级库的路径
antx.repository.external = D:/software/antx/trunk/repository
antx.repository.project = D:/software/antx/trunk/repository.project
(这个库需要在svn下载地址:http://svn.toolkit.alibaba-inc.com/trunk/binary-release/toolkit)
二、 Antx希望解决的问题:
a). Build
b). Repository管理
c). 面向project而不是target(task)
三、常见的命令
antx reactor 这样就能把当前目录下,以及所有子目录下的project.xml所描述的项目,全部build一遍。相当于你cd到每个子项目的目录下,然后分别执行antx一样的。 Build每个子项目的方法,是由相应project.jelly中的default goal决定的,比如jar、car、war、ejb、ear等。当然项目的build顺序是根据依赖关系来的,避免A依赖B,却在B之前被build。 antx reactor goals=eclipse,clean,default 这样是相当于for each project, cd projectDir,然后 antx eclipse ------ 生成eclipse项目文件 antx clean ------ 清除所有生成的文件 antx ------ 执行project.jelly中指定的默认goal antx reactor projects=toolkit/sample/petstore/web/home,toolkit/sample/petstore/web/user 这条命令和第一条命令类似,但它只build指定的两个项目及其依赖的项目。 antx reactor projects=toolkit/sample/petstore/web/home,toolkit/sample/petstore/web/user nodeps=true 这条命令和上一条命令类似,但它只build指定的那两个项目,但不会关心它们依赖的项目。你必须自己负责依赖关系。 projects、goals、nodeps参数可以混合使用。另外,如果你觉得用antx去build denali的24个模块太慢,你可以用console模式。 antx -c reactor 这样,antx在执行完reactor之后不会退出(console模式),这时你重复执行antx reactor命令,就会相当的快。在console模式里,你可以对任何已经装入的项目执行任何antx命令。打help可以看帮助
四、antx内部实现的原理
根据项目之间的依赖关系,来说明一下antx的实现过程以及怎么找第一、二、三方库文件
下面请看图所示:
111