1 环境安装及分配
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven主要服务于基于java平台的项目构建、依赖管理和项目信息管理,无论是小型的开源类库项目,还是大型的企业级应用,maven都能大显身手。
置于maven的安装过程及在eclipse里面配置maven,请看我在开源中国总结的博客:
http://my.oschina.net/u/1540325/blog/493922
1.1 使用maven构建java项目
1》在maven在dos下的使用构建java项目看我的看的开源中国的博客:
http://my.oschina.net/u/1540325/blog/495823
2》在eclipse下使用maven构建项目
1)创建简单Maven项目
点击Eclipse菜单栏File->New->Ohter->Maven得到如下图所示对话框:
选中Maven Project并点击Next,到下一个对话框
继续点击Next得到如下对话框
如图示操作,选择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项目使用