似乎没什么必要研究ANT到底为AppFuse干了些什么,但为了了解AppFuse的大体框架,也顺便学习下布署应用程序的一些过程或者规范,我觉得还是研究一下比较好。
build.xml中target数量很多,而且之间的依赖关系复杂,有必要做个整理。我现在只是把所有target的关系理清了一下,至于每个target里面每一步的操作以后再来看。
AppFuse的target依赖关系图(以下都是target的name,箭头表示后者依赖于前者)
-init --> prepare --> copy-resources -->
stage-web -------------------------------------->
--> copy-web-files -->
--> compile-dao --> package-dao --> compile-service --> package-service --> compile-web -- > webdoclet --> jsp-2 --> compile-jsp --> deploy-web
--> package-web --> war
--> deploy
--> deploy-war
--> install
--> gen-forms ---------------------------------------------------------------->
--> db-export
--> db-load
--> java2html --> javadoc
--> checkstyle
--> pmd
--> db-create
--> setup-tomcat
--> fixcrlf
- test-reports --> deploy-test-reports
- test-all-running
- ping-tomcat
- db-prepare
- db-drop
- undeploy
- emma
- todo
- with-debug -->
check-debug --> start.tomcat
- no-debug -->
-remove
-reload
-start
-drop
-list
-wiki -->
dist
-clean -->
*************************************************************
其余的target
webdoclet -->
db-load --> test-web -->
check-debug -->
copy-resources -->
package-dao -->
db-load --> test-dao -->
check-debug -->
test-all
copy-resources -->
compile-service --> test-service -->
check-debug -->
war -->
test-jsp -->
check-debug -->
db-create -->
db-prepare --> setup-db
db-load -->
ping-tomcat -->
db-load --> test-canoo
compile-web -->
undeploy -->
clean --> refesh
deploy -->
javadoc -->
todo -->
checkstyle --> docs
pmd -->
clean -->
bin
package-web -->
setup-db -->
setup-tomcat --> setup
deploy -->
clean -->
new
init -->
实在是很乱,试了好几个方法,还是这样写出来相对清楚点。compile-web和webdoclet那儿换了个行,compile-web依赖于stage-web、package-service、gen-forms。
整个Ant Project的default target是package-web,实际上这个关系图也就是AppFuse的部署流程,确实很大啊。