看了很多个例子,发现这个最好,译文中会带有我的一些了理解,有问题欢迎指出。
0.Maven是什么?
Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
可以看到,核心就是项目管理和自动构建了,从例子中将会体会更深。本例创建一个随机数生成程序。
1.从Maven模板创建项目
Maven的环境变量配置和java类似,直接添加系统变量MAVEN_HOME指向你下载的maven目录,然后将bin目录添加到path环境变量里。
在命令行下,进入到你想存储项目的位置,比如,我自己有个叫work的目录,那么我就cd到work目录,然后按下面的格式输入命令
这是告诉Maven从**maven-archetype-quickstart **创建一个java项目,如果你这个参数不填,那么会列出一个列表,让你选择你想创建什么类型,比如web项目啊,啥的。
友情提示:是不是太难记了..好吧,直接输入
根据向导来创建把。。
比如
这里的groupId就是包名,artifactId就是类名,以后具体的一些其他参数我希望有时间可以跟大家分享。
2.Maven目录结构
上面的命令第一次执行的时候会从apache网站下载maven的一些其他东西,所以务必保持联网。执行成功后,会生成一个这样的目录结构
这里main目录是我们的程序住代码目录。源代码会放在/src/main/java/包名 目录里,而单元测试代码会放在/src/test/java/包名 目录里。当然还有一个标准的pom.xml文件会生成。这个pom文件其实类似于Ant的build.xml文件,它包含了项目的信息,从目录结构到项目插件到项目依赖,都有了。。
3.用Eclipse写代码
maven已经生成了一个完整的工程了,为了能够导入到eclipse里来编辑代码,我们可以把这个项目转换成eclipse可用的。
首先命令行进入NumberGenerator目录,然后输入
然后就会生成Eclipse需要的所有项目文件里
图1.导入eclipse之后的效果
4.更新pom文件
默认的pom文件太简单了。通常我们需要添加编译插件来告诉Maven我们打算使用哪个版本的jdk来编译项目,有时候默认的版本太低了
我们把source和target改成了1.6.
然后更新JUnit到4.1.1
最终我们的pom文件如下
5.更新业务逻辑
TDD开发的理念告诉我们先写测试,我们打开AppTest.java文件。
然后修改App.java的代码
6.Maven打包
现在,我们要使用Maven来编译我们的项目,并且打包成一个jar文件,记得pom.xml文件吗?在这个文件里我们定义了打包的类型
在项目目录(也就是NumberGenerator目录)的命令行下,输入
然后就会看到:
程序开始编译,并且执行了单元测试,然后在target目录下生成了jar包,最后,程序目录结构如下:
7.执行Demo
运行生成的jar文件,还在在NumberGenerator目录下,输入如下命令
后面的com.mkyong.App就是包名+类名,也就是类的全名了
8.Demo下载
基本上一个完整的的示例就做完了,希望你有所收获,后续会更新一些Maven的的东西。欢迎支持。中秋快乐。