星期二, 5月 22, 2012

[Java] Maven + Eclipse 備忘錄

Maven是什麼?

Maven提供你的是建構環境,或說是建構環境的框架(Framework)。

Maven的主要精神有:


  • 慣例先於設定(Convention over configuration)


舉例來說,在Maven中認為,專案開發遵循應某些慣例,這些慣例像是固定目錄的名稱與架構、固定變數的名稱、固定的建構生命周期(Build lifecycle)等。Maven認為你不應花費時間在這些慣例的設定上,而要將精神放在更重要的工作上。


  • 集中管理相依性(Dependency management)


正如在 簡介 Apache Ivy 中提到的,程式庫的相依性管理是個頭痛的問題,Maven使用集中式管理,提供集中式的貯藏室(Central repository),你要在設定檔案宣告相依的程式庫等資訊,Maven會為你下載相關的檔案。

plugin 為基礎的架構

Maven 提供固定的建構生命周期,像是Default、Clean、Site等。在每個生命周期中,又會分作一些階段(Phase), 像是Default生命周期中,會有Validate、Compile、Test、Package、Integration test、Verify、Install、Deploy等階段,每個階段會有一些相繫結的plugin,Maven本身會有一些預設的plugin,你也 可以在設定檔中依需求宣告想使用的plugin,Maven會自動取得plugin。

專案物件模型(Project Object Model)


在Ant中使用build.xml來定義建構過程中的所有資訊,在Maven中與之對應的是pom.xml,不過pom.xml主要的目的是提供專案資訊,像是專案名稱、組織名稱、相依資訊等。



Maven的目錄結構


Maven 的主要結構是由 2 個資料夾(src+target)加上一個 pom.xml 所組成。
  • src 這個資料夾是存放所有檔案的地方,項目所有檔案都是在這個資料夾內。
    • src 資料夾內又有 2 個檔案,一個是 main,一個是 test。
    • main 資料夾用來存放項目的檔案,而 test 是存放測試程式的程式,例如JUnit 的測試檔案。
    • main 和 test 資料夾都有 java 和 resource 這 2 個資料夾,java 資料夾是存放 Java Class 的地方,Resource 是存放程式需要用到的檔案,例如: 文字檔案,XML 檔案等等。
  • target 這個資料夾可以不用理,因為是 Maven 存放完成檔案的地方,例如: JAR, WAR, EAR 等等。
  • pom.xml 是存放Maven 設定的地方,例如專案名稱,版本等等。

POM(Project Object Model)結構

待補


安裝Maven for Eclipse

Latest m2e release (recommended) 

http://download.eclipse.org/technology/m2e/releases



安裝Maven for windows

透過以下設定後,你就可以在CMD LINE使用Maven的指令集了

Windows 2000/XP

  1. Unzip the distribution archive, i.e. apache-maven-3.0.4-bin.zip to the directory you wish to install Maven 3.0.4. These instructions assume you choseC:\Program Files\Apache Software Foundation. The subdirectory apache-maven-3.0.4 will be created from the archive.
  2. Add the M2_HOME environment variable by opening up the system properties (WinKey + Pause), selecting the "Advanced" tab, and the "Environment Variables" button, then adding the M2_HOME variable in the user variables with the value C:\Program Files\Apache Software Foundation\apache-maven-3.0.4. Be sure to omit any quotation marks around the path even if it contains spaces. Note: For Maven < 2.0.9, also be sure that the M2_HOME doesn't have a '\' as last character.
  3. In the same dialog, add the M2 environment variable in the user variables with the value %M2_HOME%\bin.
  4. Optional: In the same dialog, add the MAVEN_OPTS environment variable in the user variables to specify JVM properties, e.g. the value -Xms256m -Xmx512m. This environment variable can be used to supply extra options to Maven.
  5. In the same dialog, update/create the Path environment variable in the user variables and prepend the value %M2% to add Maven available in the command line.
  6. In the same dialog, make sure that JAVA_HOME exists in your user variables or in the system variables and it is set to the location of your JDK, e.g.C:\Program Files\Java\jdk1.5.0_02 and that %JAVA_HOME%\bin is in your Path environment variable.
  7. Open a new command prompt (Winkey + R then type cmd) and run mvn --version to verify that it is correctly installed. (要記得重開CMD LINE)
建立Maven的Java Web Application

待補


Reference:
使用 Mavenhttp://maven.apache.org/plugins/maven-eclipse-plugin/wtp.html
套用Maven2在Eclipse上的Dynamic Web Project

2 則留言:

  1. 先進,請問maven是透過pom.xml設定,然後會自動下載相依jar檔到專案目錄下嗎?若會自動下載,那會到那個目錄下呢?maven主要功能有點不太明白,看了您撰寫的文章中「Maven的目錄結構」感覺又像是在測試jar相依性是否有問題。新手上路煩請解惑,謝謝。

    回覆刪除
  2. 下載到 \.m2\repository\ 下

    回覆刪除

留個話吧:)

其他你感興趣的文章

Related Posts with Thumbnails