零、约定
标准的重要性不用我过于强调,想象一下如果不是所有人都基于HTTP开发WEB应用,这个世界会乱成怎样。IE,FF等浏览器之间的差别已经让很多开发者头痛不已。JAVA成功的原因之一就是由于它能屏蔽大部分操作系统的差异,XML流行的原因之一是所有语言都接受它。Maven当然还不能和这些既成功又成熟的技术相比,但所有Maven的用户都应该清楚,Maven提倡的是“约定优于配置(Convention Over Configuration)”,这是Maven最核心的理念之一。
一、创建代码以及测试代码
项目主代码和测试代码不同,项目的主代码会被打包到最终的构件中(比如jar),而测试代码只在运行测试时用到,不会被打包。默认情况下,Maven假设项目主代码位于src/main/java目录。我们遵循Maven的约定,创建该目录,然后在该目录下创建文件info/zhw/arazon/Calculator.java
主程序代码:
1 public class Calculator { 2 3 public int add(int a, int b) { 4 return a + b; 5 } 6 7 }
测试代码:
1 public class CalculatorTest extends TestCase { 2 3 Calculator c = new Calculator(); 4 5 public void testAdd() { 6 assertEquals(c.add(3, 4), 7); 7 } 8 9 }
二、mvn clean
clean指令告诉maven去清理目录target/中的内容。
1 [INFO] Scanning for projects... 2 [INFO] 3 [INFO] ------------------------------------------------------------------------ 4 [INFO] Building arazon 1.0-SNAPSHOT 5 [INFO] ------------------------------------------------------------------------ 6 [INFO] 7 [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ arazon --- 8 [INFO] Deleting /home/zhw/workplace/maven/arazon/target 9 [INFO] ------------------------------------------------------------------------ 10 [INFO] BUILD SUCCESS 11 [INFO] ------------------------------------------------------------------------ 12 [INFO] Total time: 0.321 s 13 [INFO] Finished at: 2015-03-23T20:25:26+08:00 14 [INFO] Final Memory: 7M/147M 15 [INFO] ------------------------------------------------------------------------
实际上它直接把target给删了。
三、mvn compile
compile则编译项目的代码,并将其输出到target目录中,待compile执行完之后,项目的编译任务也已经完成。可以对项目进行测试和执行。
四、mvn test
如果项目中写入了单元测试,则会自动进行测试,并输出测试结果
1 ------------------------------------------------------- 2 T E S T S 3 ------------------------------------------------------- 4 Running info.zhw.arazon.CalculatorTest 5 Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 sec 6 7 Results : 8 9 Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
如若测试没有通过,也会在此处得到提醒。
五、mvn package
打包,根据pom中的package属性对编译测试成功后的内容进行打包,生成可部署运行的版本。
六、mvn install
自动运行上述所有步骤 :)实在太方便了
七、最好的教程
最好的教程当然还是官方的文档,简单总结出来的东西难免有所遗漏甚至错误,建议直接看其官方文档,写的也是清晰明了,如果只是想知道怎么用。那个Maven in 5 min已经足够。
参考文献:
http://juvenshun.iteye.com/blog/293975