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
透過以下設定後,你就可以在CMD LINE使用Maven的指令集了
Windows 2000/XP
- 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.
- 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.
- In the same dialog, add the M2 environment variable in the user variables with the value %M2_HOME%\bin.
- 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.
- 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.
- 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.
- Open a new command prompt (Winkey + R then type cmd) and run mvn --version to verify that it is correctly installed. (要記得重開CMD LINE)
待補
Reference:
使用 Mavenhttp://maven.apache.org/plugins/maven-eclipse-plugin/wtp.html
套用Maven2在Eclipse上的Dynamic Web Project
先進,請問maven是透過pom.xml設定,然後會自動下載相依jar檔到專案目錄下嗎?若會自動下載,那會到那個目錄下呢?maven主要功能有點不太明白,看了您撰寫的文章中「Maven的目錄結構」感覺又像是在測試jar相依性是否有問題。新手上路煩請解惑,謝謝。
回覆刪除下載到 \.m2\repository\ 下
回覆刪除