Work with Maven:建立項目骨架

來源:互聯網
上載者:User

一直用Maven作項目構建,Maven用起來比Ant要方便,起初為了不想在ant的構建指令碼上多花精力,選擇了Maven,但是後來實踐證明,選擇是
正確的,那麼是不是把時間精力省下來了呢,事實證明我並沒有因為選擇了Maven而節省下多少時間,在構建構建工具多花時間精力是值得的,但Maven給
我的回報遠遠超出我的預期。

Maven能做什嗎?基本上Ant能做的Maven都能作,且很多地方做得更好。為什麼這麼說呢,不講理論了,用事實證明!。
Struts2,WebWork2,Spring2,Appfuse2等比較有分量的項目都能看到Maven的身影。另他最大的特點是其依賴包管理系統,
這個觀念不是新觀念了,Debian/Ubuntu,Ruby-Gems都採用類似的思想來管理依賴包/庫。

熟悉了Maven2的項目設定檔後,可以不寫一行構建指令碼,僅僅十幾行按部就班的依賴包配置,就可以完成一個完整web項目的編譯,測試,打包,清理等任務,但如果想要Maven做得更多,follow me...

先從一個最簡單的web項目開始,假定這個項目名稱就叫做myweb,JDK1.5以上,Linux系統(XP上使用方法是一樣的,只不過XP的cmd太爛了,沒有Linux的console好用,或者我太菜,用不來XP高深的cmd命令列介面)。
1)  安裝Maven,安裝過程略,簡單的說就跟你裝ant一樣,官方網站http://maven.apache.org

2)  建立項目骨架,開一個Linux的console命令列視窗,輸入以下命令:

java 代碼
  1. mvn archetype:create /  
  2. -DgroupId=com.mycompany.webapp /  
  3. -DartifactId=myweb /  
  4. -DarchetypeArtifactId=maven-archetype-webapp  


簡單解釋一下:
archetype  是一個內建外掛程式,他的create任務將建立項目骨架
archetypeArtifactId   項目骨架的類型

可用項目骨架有:

* maven-archetype-archetype
* maven-archetype-j2ee-simple
* maven-archetype-mojo
* maven-archetype-portlet
* maven-archetype-profiles (currently under development)
* maven-archetype-quickstart
* maven-archetype-simple (currently under development)
* maven-archetype-site
* maven-archetype-site-simple, and
* maven-archetype-webapp

groupId  項目的java包結構,可修改
artifactId  項目的名稱,產生的項目目錄也是這個名字,可修改

在目前的目錄下會產生一個myweb檔案夾,這個檔案就是我們的專案檔夾了

3)  補全項目的目錄結構,因為產生的項目骨架是個webapp最小化骨架結構,與Maven的標準項目布局還有差距,
Maven標準項目布局結構見http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

其實就是要自己手動建立幾個目錄而已,下面一條命令全部搞定

java 代碼
  1. mkdir -p src/{main/java/com/mycompany/webapp,test/java/com/mycompany/webapp,test/resources}  


4)  添加一個嵌入式servlet/jsp容器jetty6,用nio重寫過的嵌入式伺服器,開發和調試web項目非常方便,這裡需要編輯唯一的設定檔pom.xml,其實並不難

xml 代碼 
  1. <
    project
     
    xmlns
    =
    "http://maven.apache.org/POM/4.0.0"
     
    xmlns:xsi
    =
    "http://www.w3.org/2001/XMLSchema-instance"
      
  2.   xsi:schemaLocation
    =
    "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
    >
      
  3.   <
    modelVersion
    >
    4.0.0
    modelVersion
    >
      

  4.   <
    groupId
    >
    com.mycompany.webapp
    groupId
    >
      

  5.   <
    artifactId
    >
    myweb
    artifactId
    >
      

  6.   <
    packaging
    >
    war
    packaging
    >
      

  7.   <
    version
    >
    1.0-SNAPSHOT
    version
    >
      

  8.   <
    name
    >
    myweb Maven Webapp
    name
    >
      

  9.   <
    url
    >
    http://maven.apache.org
    url
    >
      

  10.   <
    dependencies
    >
      
  11.     <
    dependency
    >
      
  12.       <
    groupId
    >
    junit
    groupId
    >
      

  13.       <
    artifactId
    >
    junit
    artifactId
    >
      

  14.       <
    version
    >
    3.8.1
    version
    >
      

  15.       <
    scope
    >
    test
    scope
    >
      

  16.     dependency
    >
      

  17.   dependencies
    >
      

  18.   <
    build
    >
      
  19.     <
    finalName
    >
    myweb
    finalName
    >
     


  20.    

  21.     <
    plugins
    >
      

  22.       <
    plugin
    >
      

  23.         <
    groupId
    >
    org.mortbay.jetty
    groupId
    >
      


  24.         <
    artifactId
    >
    maven-jetty-plugin
    artifactId
    >
      


  25.       plugin
    >
      


  26.     plugins
    >
     



  27.    





  28.   build
    >
      

  29. project
    >
      


5)  運行測試

java 代碼
  1. mvn jetty:run  

在網路正常聯通的情況下,maven會自動下載所有的jar依賴包,然後啟動jetty6,可以在瀏覽器中訪問http://localhost:8080/myweb/

Jetty6已經啟動並顯示了經典到掉渣的“Hello World!”
現在可以修改src/main/webapp/index.jsp,然後在瀏覽器重新整理看效果了,最簡單的web骨架就這樣誕生了
停止jetty6的命令是Ctrl+C

之後,可以在pom.xml中添加spring,hibernate/ibatis,struts/struts2/webwork2以及report,xdoclet,hibernate代碼產生工具,DbUnit等等...(今天寫道這裡,以後在寫吧)

推薦兩篇文章:

http://www.blogjava.net/calvin/archive/2006/03/19/36098.html

http://www.ibm.com/developerworks/cn/opensource/os-maven2/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.