Maven 是一款深化 Ant 並擁有完整專案整合策略的 Java 專案管理工具,當前版本為 2.0.2。本文記錄從安裝、配置到日常操作的完整實踐步驟。
MAVEN_HOME 並加入 PATH。mvn --version 驗證安裝成功。pom.xml,針對單一專案配置。${MAVEN_HOME}/conf/settings.xml,全域安裝配置。${user.home}/.m2/settings.xml,個人化配置(本地倉庫、Proxy 等)。建議優先配置使用者層。範例設定本地倉庫至 d:/repo 並配置 HTTP Proxy:
<localRepository>d:/repo</localRepository>
<proxies>
<proxy>
<id>proxy1</id>
<active>true</active>
<protocol>http</protocol>
<host>222.136.91.1</host>
<port>80</port>
<nonProxyHosts></nonProxyHosts>
</proxy>
</proxies>
修改後複製一份至 ${user.home}/.m2。
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app
src/main/java, src/test/java)、HelloWorld 範例與 pom.xml。pom.xml 包含專案物件模型 (POM),是 Maven 工作的基本單元。
| 指令 | 說明 |
|---|---|
mvn compile | 編譯主程式(target/classes),不編譯測試碼。首次執行會大量下載依賴。 |
mvn test-compile | 單獨編譯測試程式(target/test-classes)。 |
mvn test | 自動編譯並執行測試。 |
mvn package | 打包(JAR/WAR),前置執行編譯與測試。 |
mvn install | 將打包成果安裝至本地倉庫(${localRepository}/groupId/artifactId/version/),供其他專案引用。 |
mvn site | 生成專案站點文件。 |
mvn clean | 清理 target 目錄。 |
mvn idea:idea | 為 IntelliJ IDEA 生成專案檔。 |
${basedir}/src/main/resources 內容打包至 JAR 根目錄。${basedir}/src/test/resources,透過 getClass().getResourceAsStream() 讀取。資源過濾 允許在資源檔中使用屬性替換。需在 pom.xml 啟用:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<filters>
<filter>src/main/filters/filter.properties</filter>
</filters>
</build>
支援來源:pom.xml 專案屬性(${pom.name})、settings.xml、外部屬性檔、系統屬性(${java.version})、命令列參數(-Dcommand.line.prop=value)。
在 pom.xml 宣告依賴:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
<scope>compile</scope>
</dependency>
scope:compile(預設)、test(僅測試)、provided、runtime 等。site:www.ibiblio.org maven2 log4j 或瀏覽 Maven 中央倉庫索引。settings.xml 配置 <servers> 認證資訊(ID、username、private key/password)。pom.xml 配置 <distributionManagement> 指定遠端 Repository URL (SCP/HTTP)。mvn deploy。https://m2eclipse.codehaus.org/update