Maven NetBeans

NetBeans 6.7 及更新的版本已經內置了 Maven。對於以前的版本,可在插件管理中心獲取 Maven 插件。此例中我們使用的是 NetBeans 6.9。 關於 NetBeans 的一些特性如下:

  • 可以通過 NetBeans 來運行 Maven 目標。
  • 可以使用 NetBeans 自身的控製台查看 Maven 命令的輸出。
  • 可以更新 Maven 與 IDE 的依賴。
  • 可以在 NetBeans 中啟動 Maven 的構建。
  • NetBeans 基於 Maven 的 pom.xml 來實現自動化管理依賴關係。
  • NetBeans 可以通過自己的工作區解決 Maven 的依賴問題,而無需安裝到本地的 Maven 倉庫,雖然需要依賴的項目在同一個工作區。
  • NetBeans 可以自動從遠程 Moven 庫上下載需要的依賴和源碼。
  • NetBeans 提供了創建 Maven 項目,pom.xml 文件的向導。
  • NetBeans 提供了 關於Maven 倉庫的瀏覽器,使您可以查看本地存儲庫和注冊在外部的 Maven 倉庫。

在 NetBeans 裏打開一個 Maven 項目

  • 打開 NetBeans
  • 選擇 File Menu > Open Project 選項
  • 選擇項目的路徑,即使用 Maven 創建一個項目時的存儲路徑。假設我們創建了一個項目: consumerBanking. 通過 Maven 構建 Java 項目 查看如何使用 Maven 創建一個項目。

目前為止,你已經可以在 NetBeans 裏看到 Maven 項目了。看一下consumerBanking 項目的 Libraries 和 Test Libraries. 你可以發現 NetBeans 已經將 Maven 所依賴的都添加到了它的構建路徑裏了。

在 NetBeans 裏構建一個 Maven 項目

好了,我們來使用 NetBeans 的編譯功能來構建這個 Maven 項目

  • 右鍵點擊 consumerBanking 項目打開上下文菜單。
  • 選擇 "Clean and Build" 選項

Maven 將會開始構建該項目。你可以在 NetBeans 的終端裏查看輸出的日誌信息:

NetBeans: Executing 'mvn.bat -Dnetbeans.execution=true clean install'
NetBeans:      JAVA_HOME=C:\Program Files\Java\jdk1.6.0_21
Scanning for projects...
------------------------------------------------------------------------
Building consumerBanking
   task-segment: [clean, install]
------------------------------------------------------------------------
[clean:clean]
[resources:resources]
[WARNING] Using platform encoding (Cp1252 actually)
to copy filtered resources, i.e. build is platform dependent!
skip non existing resourceDirectory C:\MVN\consumerBanking\src\main\resources
[compiler:compile]
Compiling 2 source files to C:\MVN\consumerBanking\target\classes
[resources:testResources]
[WARNING] Using platform encoding (Cp1252 actually)
to copy filtered resources, i.e. build is platform dependent!
skip non existing resourceDirectory C:\MVN\consumerBanking\src\test\resources
[compiler:testCompile]
Compiling 1 source file to C:\MVN\consumerBanking\target\test-classes
[surefire:test]
Surefire report directory: C:\MVN\consumerBanking\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.companyname.bank.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.023 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[jar:jar]
Building jar: C:\MVN\consumerBanking\target\consumerBanking-1.0-SNAPSHOT.jar
[install:install]
Installing C:\MVN\consumerBanking\target\consumerBanking-1.0-SNAPSHOT.jar
to C:\Users\GB3824\.m2\repository\com\companyname\bank\consumerBanking\
1.0-SNAPSHOT\consumerBanking-1.0-SNAPSHOT.jar
------------------------------------------------------------------------
BUILD SUCCESSFUL
------------------------------------------------------------------------
Total time: 9 seconds
Finished at: Thu Jul 19 12:57:28 IST 2012
Final Memory: 16M/85M
------------------------------------------------------------------------

在 NetBeans 裏運行應用程序

現在,右鍵點擊 App.java 文件。選擇 Run File 選項。你可以在終端看到如下結果:

NetBeans: Executing 'mvn.bat -Dexec.classpathScope=runtime 
-Dexec.args=-classpath %classpath com.companyname.bank.App 
-Dexec.executable=C:\Program Files\Java\jdk1.6.0_21\bin\java.exe 
-Dnetbeans.execution=true process-classes 
org.codehaus.mojo:exec-maven-plugin:1.1.1:exec'
NetBeans:      JAVA_HOME=C:\Program Files\Java\jdk1.6.0_21
Scanning for projects...
------------------------------------------------------------------------
Building consumerBanking
   task-segment: [process-classes, 
   org.codehaus.mojo:exec-maven-plugin:1.1.1:exec]
------------------------------------------------------------------------
[resources:resources]
[WARNING] Using platform encoding (Cp1252 actually) 
to copy filtered resources, i.e. build is platform dependent!
skip non existing resourceDirectory C:\MVN\consumerBanking\src\main\resources
[compiler:compile]
Nothing to compile - all classes are up to date
[exec:exec]
Hello World!
------------------------------------------------------------------------
BUILD SUCCESSFUL
------------------------------------------------------------------------
Total time: 1 second
Finished at: Thu Jul 19 14:18:13 IST 2012
Final Memory: 7M/64M
------------------------------------------------------------------------