Google Prettify

2013-09-22

Maven 101:淺談Maven

圖片來源: http://maven.apache.org/
Maven是一項專案程式碼管理工具。在使用Maven前有幾點必需先認知的。

1. Maven強調的是慣例。也就是說也的彈性不如Ant。或許Ant可以做到的事 Maven也可以做到,但是相對上來說,可能需要花必較多的設定稅是較多的心力去學習如何設定。

2. Maven的架構。Maven  有一個集中式管理的repository,而且針對於不同版本的jar檔,repository也會保存不同版本的jar 檔;然後供各個project依照各project的需求,去引用相關的jar檔。

3. Maven有很多plugin來完成各項動作。如果沒有這些plugin,Maven也會自動去下載這些plugin。

4. Maven的生命週期。Maven提供了一些固定的lifecycle(或是build lifecycle),例如Default、Clean、Site。Lifecycle下有分Phase(或是build phase),例如Default lifecycle下就有這以下的pahse:

validate:驗證專案正確性以及所有必要資訊已備妥。
compil:編譯專案原始碼。
test:進行單元測試。
package:將相關檔案進行封裝,例如產生JAR檔案。
integration-test:進行整合測試。
verify:驗證檔案封裝是否正確。
install:將封裝的檔案安裝至本地貯藏室(Local repository)。
deploy:部署檔案。

Phase又由Goal(或是plugin goal)組成。不過Goal與Phase的關係,並不像樹狀一樣,特定的goal會隸屬於特定的phase,而是一種多對多的關係。Goal的語法比較特殊,大概會像 dependency:copy-dependencies 這樣子。

原則上Maven的用意,是讓你下一行指令,就可以進行deploy的動作。例如:最簡單的設定檔,會是像這樣子:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>Maven Quick Start Archetype</name>
  <url>http://maven.apache.org</url>
</project>
只要執行一行命令,就可以產生出war、或是jar、或是class:
mvn install
然而我們之前有提到Maven強調的是慣例,所以產生出來的war、jar或是class,跟我們以往使用Eclipse所產生東西,目錄、結構都不太一樣。如果你的jar檔或是war檔有使用到其他相關的jar檔,開發建構的流程與相關檔案架構也都跟以往所熟悉的Eclipse架構不太一樣。這邊Eclipse的使用者在上手Maven時是需要注意的。

沒有留言 :

您或許對這些有興趣

Related Posts with Thumbnails

最後

謝謝您的閱讀,希望您可以有豐富的收獲。