江湖上多的是功能華麗的項目原型/骨架生成工具,但最后,反而是功能簡單的Maven Archetypes漸漸有了一統(tǒng)的希望。
無它,先把自己收拾得簡單易用,然后作為一個江湖大佬(maven)的"官方"小弟,再有另一些江湖大佬(appfuse,strust2,cxf)使用示范一下,就是現(xiàn)在的上位秘訣。
和很多生成工具一樣,Maven Archetypes 的功能就是從Velocity模板中替換變量,并根據(jù)package 名擴展一下java文件的目錄結(jié)構(gòu)而已。
Advanced Usage 講解了一個完全的Maven Archetype周期:
- mvn archetype:create-from-project 先從一個已有的項目生成Archetype模板到 target/generated-sources/archetype。
這還是需要程序自己有點小聰明的,要找準package name和變量,將變量轉(zhuǎn)為符號,將目錄結(jié)構(gòu)收縮。 - 進到目錄中,mvn install 將Archetype模板安裝到本地maven倉庫里。
- 在新的目錄中,mvn archetype:generate -DarchetypeCatalog=local ,交互式的輸入項目名,package名等變量,即生成項目。
這里,2.0 Alpha3版比原來的1.0 Alpha7改進良多,一是有了從已有項目爬出模板來的命令,二是生成項目時有了交互式的輸入,三是控制文件的改進(支持Ant語法批量定義等)。
新的控制文件見META-INF/maven/archetype-metadata.xml ,原來1.0版的文件已經(jīng)作廢。
控制文件可以新增自己的變量,控制目錄是否需要velocity替換變量,是否需要根據(jù)package名擴展目錄樹。