似乎沒什么必要研究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的部署流程,確實很大啊。