NetBeans 6.7和更新版本已经内置了对Maven的支持。在以前的版本中,Maven插件可用于插件管理器。在这个例子中我们使用的是NetBeans 6.9。

下面列出了NetBeans的一些功能 -

  • 您可以从NetBeans运行Maven目标。

  • 您可以使用自己的控制台在NetBeans中查看Maven命令的输出。

  • 您可以使用IDE更新Maven依赖关系。

  • 您可以从NetBeans内部启动Maven构建。

  • NetBeans基于Maven的pom.xml自动执行依赖关系管理。

  • NetBeans在不安装到本地Maven存储库的情况下从其工作空间解析Maven依赖关系(要求依赖项目位于同一工作空间中)。

  • NetBeans自动下载远程Maven存储库所需的依赖项和源。

  • NetBeans提供了用于创建新Maven项目的向导,pom.xml。

  • NetBeans提供了一个Maven存储库浏览器,使您能够查看本地存储库和注册的外部Maven存储库。

以下示例将帮助您充分利用集成NetBeans和Maven的优势。

在NetBeans中打开一个Maven项目

  • 打开NetBeans。

  • 选择 文件菜单 >打开项目 选项。

  • 选择使用Maven创建项目的项目位置。我们已经创建了一个Java项目consumerBanking。转到'创建Java项目'一章,了解如何使用Maven创建项目。

Maven NetBeans-IT猿网-图片-1

现在,您可以在NetBeans中看到maven项目。看看consumerBanking项目库和测试库。您可以看到NetBeans已将Maven依赖关系添加到其构建路径。

Maven NetBeans-IT猿网-图片-2

在NetBeans中构建一个Maven项目

现在,是时候使用NetBeans的maven功能来构建这个项目了。

  • 右键单击consumerBanking项目以打开上下文菜单。

  • 选择Clean and Build作为选项。

Maven NetBeans-IT猿网-图片-3

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。选择 运行文件 作为选项。您将在NetBeans控制台中看到结果。

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
------------------------------------------------------------------------