Maven - NetBeans
NetBeans 6.7 以及更新的版本已经内建了 Maven 支持。对于以前的版本,可在插件管理中心获取 Maven 插件。此例中我们使用的是 NetBeans 6.9。
NetBeans 一些特性列出如下:
- 你可以从 NetBeans 中运行 Maven 目标操作。
- 你可以使用 NetBeans 自身的控制台查看 Maven 命令的输出。
- 你可以使用 IDE 更新 Maven 依赖。
- 你可以从 NetBeans 中启动 Maven 构建。
- 基于 Maven pom.xml 文件, NetBeans 自动进行依赖管理。
- NetBeans 解决来自自己的工作空间的 Maven 依赖,而不用安装依赖到本地 Maven 仓库中(需要依赖的项目在同一个工作空间中)。
- NetBeans 提供了向导,可供创建 Maven 新项目和 pom.xml 文件。
- NetBeans 提供了一个 Maven 仓库浏览器允许你查看本地仓库和已经注册的外部 Maven 仓库。
下面的例子将帮助你充分利用 NetBeans 集成 Maven 的好处。
在 NetBeans 打开一个 Maven 项目
- 打开 NetBeans。
- 选择 File Menu > Open Project 选项。
- 选择项目位置,即使用 Maven 创建项目的位置。我们已经创建好一个 Java 项目 consumerBanking。参见 Maven Creating Project 章节来了解如何使用 Maven 创建项目。
现在,你可以看到 Maven 项目出现在了 Netbeans 中。查看下 consumerBanking 项目的库和测试库,你可以看到 Netbeans 已经将 Maven 依赖添加到了构建路径下。
在 Netbeans 中构建 Maven 项目
现在,是时候展示下 Netbeans 中 Maven 的能力,来构建这个项目了。
- •右击 consumerBanking 项目打开快捷菜单。
- •选择 Clean and Build as 选项
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 As 选项, 你将在 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
------------------------------------------------------------------------