如何编译源文件?
进入pom.xml所在的目录,然后执行如下命令去编译你的源文件:
mvn compile
执行时将会输出如下信息:
[INFO] ----------------------------------------------------------------------------[INFO] Building Maven Quick Start Archetype[INFO] task-segment: [compile][INFO] ----------------------------------------------------------------------------[INFO] artifact org.apache.maven.plugins:maven-resources-plugin: \ checking for updates from central...[INFO] artifact org.apache.maven.plugins:maven-compiler-plugin: \ checking for updates from central...[INFO] [resources:resources]...[INFO] [compiler:compile]Compiling 1 source file to/my-app/target/classes[INFO] ----------------------------------------------------------------------------[INFO] BUILD SUCCESSFUL[INFO] ----------------------------------------------------------------------------[INFO] Total time: 3 minutes 54 seconds[INFO] Finished at: Fri Sep 23 15:48:34 GMT-05:00 2005[INFO] Final Memory: 2M/6M[INFO] ----------------------------------------------------------------------------
初次执行此命令的时候,maven需要下载插件和依赖,一般需要一段时间(上面耗时4分钟的样子)。再次执行的时候maven已经有了他所需要的资源,不需要再次下载任何东西,执行会非常快。
从输入的日志上我们可以看出,classes文件会被放置在${basedir}/target/classes,这个也是maven的一个标准约定。如果你是一个敏锐观察者你会发现你只需要遵循这个约定,上面的pom很小你也没有告诉他输入和输出,遵循约定你会最小的付出做更多的事,非常轻松,让我们看下如果在ant中做同样的事情需要做哪些。
很容易看出编译源文件这个事ant脚本比maven复杂的多。那么我们还可以基于这个简单的pom做更多的事情!
如何编译测试用例并执行单元测试?
现在我们已经成功编译我们的项目源文件了,同时我们也写了一些单元测试的代码(任何项目都需要不停的反复的去单元测试)。执行如下命令:
mvn test
上述执行将会输出如下日志:
[INFO] ----------------------------------------------------------------------------[INFO] Building Maven Quick Start Archetype[INFO] task-segment: [test][INFO] ----------------------------------------------------------------------------[INFO] artifact org.apache.maven.plugins:maven-surefire-plugin: \ checking for updates from central...[INFO] [resources:resources][INFO] [compiler:compile][INFO] Nothing to compile - all classes are up to date[INFO] [resources:testResources][INFO] [compiler:testCompile]Compiling 1 source file to C:\Test\Maven2\test\my-app\target\test-classes...[INFO] [surefire:test][INFO] Setting reports dir: C:\Test\Maven2\test\my-app\target/surefire-reports------------------------------------------------------- T E S T S-------------------------------------------------------[surefire] Running com.mycompany.app.AppTest[surefire] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0 secResults :[surefire] Tests run: 1, Failures: 0, Errors: 0[INFO] ----------------------------------------------------------------------------[INFO] BUILD SUCCESSFUL[INFO] ----------------------------------------------------------------------------[INFO] Total time: 15 seconds[INFO] Finished at: Thu Oct 06 08:12:17 MDT 2005[INFO] Final Memory: 2M/8M[INFO] ----------------------------------------------------------------------------
上面的日志输出说明如下:
- maven下载了一些依赖,单元测试也需要一些依赖资源和插件(一旦有了这些资源下次将不再下载)
- 执行编译单元测试之前首先需要编译应用主代码(所有的代码都是最新的,因为最后一次编译之后没有做修改)
如果仅仅是编译你的单元测试代码而不去执行单元测试的话那么执行如下命令:
mvn test-compile
现在你已经编译了你的项目源代码,编译了单元测试代码,执行了单元测试 ,理所当然的你会问....