Maven是基于项目对象模型(POM),能够经过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven主要服务于基于java平台的项目构建、依赖管理和项目信息管理,不管是小型的开源类库项目,仍是大型的企业级应用,maven都能大显身手。java
置于maven的安装过程及在eclipse里面配置maven,请看我在开源中国总结的博客:web
http://my.oschina.net/u/1540325/blog/493922apache
1》在maven在dos下的使用构建java项目看个人看的开源中国的博客:tomcat
http://my.oschina.net/u/1540325/blog/495823eclipse
2》在eclipse下使用maven构建项目 maven
1)建立简单Maven项目工具
点击Eclipse菜单栏File->New->Ohter->Maven获得以下图所示对话框:测试
选中Maven Project并点击Next,到下一个对话框ui
继续点击Next获得以下对话框spa
如图示操做,选择maven-archetype-quickstart,点击Next,获得以下图:
按图示填写好groupId, artfactId,version等信息,点击Finish。
简单解释一下 Group Id、Artifact Id、Version 和 Package:
groupId:group 翻译成中文就是组、集团的意识,groupId就是这样一个组或集团的ID标识,就拿 Apache 来讲好了,Apache 你们都不陌生吧,
Apache 官网上有很是多的项目,每一个项目里面确定能找获得 org.apache.xxxx,而 org.apache 就是这里说的 groupId
artifactId:仍是拿 Apache 来讲,Apache 官网上有很是多的项目,而每一个项目的名字就是这里的 artifactId,换句话说,artifactId 就是你的项目名
version:这个就没有什么好解释的了吧,是项目版本的意思
package:这个也没什么好说的,就是 groupId.artifactId,建立的时候会自动帮你补全,若是没有自动帮你补全就本身手动敲上去
由此咱们成功建立了一个简单的Maven项目,项目结构如图所示
2)建立Maven web项目
操做跟建立简单Maven项目相似,点击Eclipse菜单File->New->Other->Maven->Maven Project
在选择maven-archetype的界面进行以下操做:
点击Next,填写好相应的groupId,artifactId,version等信息,点击Finish
获得的Maven web项目结构以下图所示
说明一下目录结构
src/main/resources:用来存放资源文件(默认会帮你建立这个资源文件夹)
src/main/java:用来存放 java 源码文件(须要本身手动建立)
src/main/test:用来存放测试代码(须要本身手动建立,也有人习惯命名为:src/test)@
target:是用来存放 Maven 编译好的字节码的地方
Maven Dependencies:里面放的是 maven 管理的 jar 文件
运行maven管理的项目,
. 3)运行Maven命令
右击项目,点击Run as,以下图:
便可看到有不少现有的maven命令,点击便可运行,并在控制台能够看到运行信息
若是你想运行的maven命令在这里没有找到,点击Maven build建立新的命令,操做以下图所示:
以下图填入Maven命令,点击Run便可
新增的maven命令能够经过以下方式找到,并再次运行:
通常运行maven install就可了。若是是java项目会生成jar包,若是是java web项目会生成war包,
而后经过tomcat就能够把java web运行起来了
1.2 Maven的编译流程
其实咱们通常使用mvn install命令直接一次把项目打包,不用执行其他的mvn compile ,mvn package 之类的命令,由于执行mvn install命令,会把这几个命令都给执行了,如今咱们能够看一下mvn intall作了哪些事:
initialize 初始化一些环境
process-sources处理项目主资源文件,通常来讲是对/src/main/resources目录的内容进行变量替换等工做,复制到项目的主classpath目录中。
compile 编译项目的主源码,通常就是src/main/java
process-test-sources处理项目测试资源文件
test-compile编译项目的测试代码
package把编译好的代码打包
install 将安装包安装到maven本地仓库,供本地其余maven项目使用