Maven NetBeans
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 仓库。
1. 在 netbeans 里打开一个 maven 项目
- 打开 netbeans
- 选择 file menu > open project 选项
- 选择项目的路径,即使用 maven 创建一个项目时的存储路径。假设我们创建了一个项目: consumerbanking. 通过 maven 构建 java 项目 查看如何使用 maven 创建一个项目。
目前为止,你已经可以在 netbeans 里看到 maven 项目了。看一下consumerbanking 项目的 libraries 和 test libraries. 你可以发现 netbeans 已经将 maven 所依赖的都添加到了它的构建路径里了。
2. 在 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 ------------------------------------------------------------------------
3. 在 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 ------------------------------------------------------------------------