NetBeans IDE整合Maven


NetBeans6.7更新版本已經內建對Maven支援。如遇以前的版本,Maven外掛在外掛管理器中可用。我們正在使用NetBeans在這個例子中使用6.9。

在NetBeans一些特點如下

  • 您可以從NetBeans執行Maven目標。

  • 您可以可以檢視Maven命令的輸出使用其自己的控制台在NetBeans裡面??。

  • 你可以更新maven的依賴關係的IDE。

  • 您可以啟動Maven從內部的NetBeans版本。

  • NetBeans不依賴自動管理基於Maven的pom.xml。

  • NetBeans解決Maven的依賴關係從它的工作空間,而不需要安裝到本地Maven倉庫(需要依賴專案在同一個工作區)。

  • NetBeans自動下載需要的依賴和源從遠端Maven倉庫。

  • NetBeans提供嚮導,用於建立新的Maven專案及pom.xml

  • NetBeans提供一個Maven資源庫瀏覽器,使您可以檢視您的本地儲存庫和註冊的外部Maven倉庫。

下面的例子將幫助您充分利用NetBeans的整合和Maven的好處。

開啟NetBeans Maven專案

  • 打NetBeans.

  • 選擇 File Menu > Open Project 選項.

  • 選擇專案的位置,使用Maven在那裡建立了一個專案。我們已經建立一個Java專案consumerBanking。看到Maven建立專案,看看如何建立使用Maven專案。

Open a Maven project in NetBeans.

現在,你可以看到Maven專案在NetBeans。看看consumerBanking專案庫和測試庫。可以看到,NetBeans的增加了Maven的依賴關係到它的構建路徑。

Maven project in NetBeans.

建立在NetBeans Maven專案

現在,它使用NetBeans的Maven來構建專案。

  • 右鍵點選consumerBanking專案開啟上下文選單。

  • 選擇清理並生成可選項

Build a Maven project in NetBeans.

Maven將開始建設該專案。你可以看到在NetBeans控制台輸出

NetBeans: Executing 'mvn.bat -Dnetbeans.execution=true clean install'
NetBeans:      JAVA_HOME=C:Program FilesJavajdk1.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:MVNconsumerBankingsrcmainesources
[compiler:compile]
Compiling 2 source files to C:MVNconsumerBanking	argetclasses
[resources:testResources]
[WARNING] Using platform encoding (Cp1252 actually)
to copy filtered resources, i.e. build is platform dependent!
skip non existing resourceDirectory C:MVNconsumerBankingsrc	estesources
[compiler:testCompile]
Compiling 1 source file to C:MVNconsumerBanking	arget	est-classes
[surefire:test]
Surefire report directory: C:MVNconsumerBanking	argetsurefire-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:MVNconsumerBanking	argetconsumerBanking-1.0-SNAPSHOT.jar
[install:install]
Installing C:MVNconsumerBanking	argetconsumerBanking-1.0-SNAPSHOT.jar
to C:UsersGB3824.m2epositorycomcompanynameankconsumerBanking
1.0-SNAPSHOTconsumerBanking-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檔選項。你會看到在NetBeans控制台的結果。

NetBeans: Executing 'mvn.bat -Dexec.classpathScope=runtime 
-Dexec.args=-classpath %classpath com.companyname.bank.App 
-Dexec.executable=C:Program FilesJavajdk1.6.0_21injava.exe 
-Dnetbeans.execution=true process-classes 
org.codehaus.mojo:exec-maven-plugin:1.1.1:exec'
NetBeans:      JAVA_HOME=C:Program FilesJavajdk1.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:MVNconsumerBankingsrcmainesources
[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
------------------------------------------------------------------------