在2003、2004年間,Java大拜拜的講師在demo時是用一套Ant作為建構軟體,沒想到我還用得不怎麼熟時,換Maven開始領風騷了。不過也沒入門,就在看Struts2的sample時也順手拿來練功。其在command mode語法如下(下command時別換行):

mvn archetype:create
-DgroupId=com.struts2
-DartifactId=app
-DarchetypeGroupId=org.apache.struts
-DarchetypeArtifactId=struts2-archetype-starter
-DarchetypeVersion=2.0.11.2-SNAPSHOT
-DremoteRepositories=http://people.apache.org/maven-snapshot-repository

  執行Maven前一定要裝JDK。若是command下得有問題還可以帶參數-e,如mvn –e archetype:create…。

  要建構一個新專案,只需前三行即可:mvn archetype:create -DgroupId=com.struts2 -DartifactId=app,如此它便會在command所在目錄下建立app子目錄,其目錄結構為:

\src
    \main
        \java
            \com
                \struts2
                    App.java
    \test
        \java
            \com
                \struts2
                    AppTest.java
pom.xml ---> Maven的配置主角

  看過去也大概了解為什麼凌駕於Ant之上,可說是Ruby on Rails的CM(建構管理)版,連測試Package都幫你建好了。而望文生義,groupId是定義java的package、artifactId則是指名建立的目錄(如本例的app)。

  接著看後面四個參數,和前面顯然是mapping的功能,如archetypeGroupId對映到groupId、archetypeArtifactId對映到artifactId。由remoteRepositories所指的site複製一份至Local。以本例為例,在Browser上打上http://people.apache.org/maven-snapshot-repository後,會見到檔案目錄列表,既是mapping org.apache.struts,所以定有org目錄,其下為apache子目錄再追到struts目錄,而後綴名為archetype-starter應是Maven慣例,所以在org/apache/struts下會有個struts2-archetype-starter子目錄,至於為何snapshot版本會是2.0.11.2,也是進了struts2-archetype-starter子目錄才看到了,書上的sample較舊,打成2.0.9是無法maven下來的。

  後續pom.xml怎麼用就有待研究了,大概是去年還是前年玩Ruby時,就聽說Maven也有Ruby版,叫Raven(烏鴉…)。

arrow
arrow
    全站熱搜

    Jemmy 發表在 痞客邦 留言(0) 人氣()