本文示範了用maven編譯java項目
時間:15分鐘
文本編輯器或者ide
jdk 6 或者更高版本
本例主要為了展示maven,是以java的項目力求簡單。
選擇一個項目目錄,在 *nix系統上使用下面語句
window下使用指令
建立如下結構:
在<code>src/main/java/hello</code>目錄下建立java檔案<code>helloworld.java</code>和 <code>greeter.java</code>
<code>src/main/java/hello/helloworld.java</code>
<code>src/main/java/hello/greeter.java</code>
首先,在項目的根目錄下建立一個maven項目定義檔案<code>pom.xml</code>,該檔案主要是說明項目的名稱、版本和依賴庫
<code>pom.xml</code>
除了<packaging> 元素可選外,其他的元素是構成<code>pom.xml</code> 檔案的最基本的元素了。它包括以下幾個項目的配置:
<modelversion> :pom 子產品版本(通常是4.0.0).
<groupid> :項目所屬的組織編号,通常用域名
<artifactid> 項目的名稱(比如,jar或者war的名稱)
<version> 項目編譯的版本号
<packaging> 項目打包形式,jar或者war
運作下面語句編譯
編譯完成的<code>.class</code>檔案将會出現在<code>target/classes</code>目錄下.如下圖
運作項目:
輸出如下:
如果不想直接運作<code>.class</code>檔案,可以将其打包:
打包完成後,會在<code>target</code>目錄下生成一個jar檔案,檔案名由<artifactid> 和 <version>組成。比如本例,将會根據<code>pom.xml</code>生成<code>gs-maven-0.1.0.jar</code>
如果你想安裝您的項目的jar檔案到本地maven倉庫,那麼你應該調用下面語句:
此時,你的項目代碼将會經過編譯、測試、打包并拷貝到本地依賴庫,提供給其他項目引用。
說到項目依賴,下面說下<code>聲明依賴</code>
上面的例子比較簡單,沒有用到其他庫。但是真實的項目可能會引用(依賴)到很多其他庫。
下面例子,依賴了<code>joda time</code>的庫。
修改<code>src/main/java/hello/helloworld.java</code>
現在運作<code>mvn compile</code>将會報錯,因為沒有聲明依賴。在 <project> 節點下插入如下:
這段内容就聲明了項目的依賴。每個依賴節點<dependency>都由三個子節點組成:
<groupid> : 該依賴庫所屬的組織名稱
<artifactid> : 依賴的庫名
<version> : 依賴的庫版本
在pom 4中,<dependency> 中還引入了<scope> ,它主要管理依賴的部署。目前<scope> 可以使用5個值:
compile,預設值,适用于所有階段,會随着項目一起釋出。
provided,類似compile,期望jdk、容器或使用者會提供這個依賴。如servlet.jar。
runtime,隻在運作時使用,如jdbc驅動,适用運作和測試階段。
test,隻在測試時使用,用于編譯和運作測試代碼。不會随項目釋出。
system,類似provided,需要顯式提供包含依賴的jar,maven不會在repository中查找它。
現在你運作<code>mvn compile</code>或者<code>mvn package</code>,maven會自動下載下傳相關依賴。
完整的<code>pom.xml</code>
<a href="http://www.vineetmanohar.com/2009/11/3-ways-to-run-java-main-from-maven/">http://www.vineetmanohar.com/2009/11/3-ways-to-run-java-main-from-maven/</a>