剛開始學Java時,總是非常奇怪,為什麼一些開源軟體總是那麼變態,使用Ant或Maven來編譯器,用Eclipse不好嗎?後來才漸漸發現,Eclipse的工程,由於每個人機器中Eclipse的配置可能不同,所以可能造成工程匯入失敗,而採用Ant或Maven則可以在很大程度上避免這種情況的發生,尤其是Maven,這個工具可以使你建立與工程開發人員相同的開發環境,自動處理Jar包依賴,把我們從尋找下載依賴Jar包的簡單勞動中解放出來,因此熟練掌握Maven對於深入掌握Java語言是非常有協助的。
在這篇文章中,我將搭建起一個基於Maven的開發環境,採用Log4j輸出Hello World,同時探討一個怎樣在Eclipse中找開Maven的工程。
首先,下載最新版本Maven:http://maven.apache.org/download.html ,目前的最新版本為3.0.4。下載二進位版,將其進行解壓到某個目錄下即可。
建立mproj目錄,在下面是利用Maven建立一個工程:
set JAVA_HOME=d:\jdk7u6maven_dir\bin\mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.bjcic.learn -DartifactId=myapp
初次運行時,由於需要從網路上下載一些東西來建立環境,所以需要一些時間,還會提示一些問題,所有問題直接斷行符號即可。完成後,將在目前的目錄下建立myapp目錄。並且在該目錄中產生了最重要的pom.xml檔案,該檔案是mavon項目最重要的設定檔。
由於我們需要使用log4j這樣的三方庫,所以我們需要在mproj\myapp\pom.xml中添加依賴:
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.0-beta3</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.0-beta3</version> <scope>compile</scope> </dependency> </dependencies>
其中junit為系統為我們產生的,log4j是我們自己添加的。
進入mproj\src\main目錄,建立resources目錄,並編譯log4j所需要的設定檔log4j2.xml:
<?xml version="1.0" encoding="UTF-8"?><configuration> <appenders> <Console name="STDOUT" target="SYSTEM_OUT"> <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> </Console> </appenders> <loggers> <logger name="org.apache.log4j.xml" level="info"/> <root level="debug"> <appender-ref ref="STDOUT"/> </root> </loggers></configuration>
我們建立一個測試類別com.bjcic.learn.AppUtil.java代碼如下所示:
package com.bjcic.learn;import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;public class AppUtil { private static Logger logger = LogManager.getLogger(AppUtil.class.getName()); public void runUtil() { logger.info("Hello World"); }}
在系統為我們產生的src/main/java/com/bjcic/learn/App.java中添加如下代碼:
public static void main( String[] args ) { AppUtil appUtil = new AppUtil(); appUtil.runUtil(); }
現在就一切都配置正常了,可以開始編譯及運行了。
首先,編譯工程:
%maven_home%\bin\mvn compile
系統會下載一些依賴,最後會提示編譯成功。接著我們需要安裝該工程(為了便於使用Maven來運行):
%maven_home%\bin\mvn install
最後是運行:
%maven_home%\bin\mvn exec:java -Dexec.mainClass=com.bjcic.learn.App -Dexec.args="p1 p2"
至此利用Maven 3編譯運行一個工程就全部完成了,但是始終在命令列下工作,沒有文法提示是一個比較痛苦的事情,因此Maven提供了將項目轉為Eclipse工程的功能。
%maven_home%\bin\mvn eclipse:eclipse
這樣就可以在eclipse中直接開啟了。