视频课程链接:http://edu.51cto.com/course/13014.html
Apache Maven是一个软件项目管理和构建工具,可以帮助我们创建和管理项目
基于项目对象模型POM(Poject Object Model)的概念,帮助开发者构造一个项目的完整生命周期
注:POM是Maven对一个项目的描述,是Maven的核心,一个POM其实就是一个XML文件
项目规则很大时一定会将项目进行拆分,将一个项目拆分成多个模块,每个模块对应一个工程,多个工程之间存储依赖关系
此时可以使用Maven的依赖管理机制,帮助我们在项目与项目之间建立依赖关系
通过仓库管理jar包
多个项目可能会用到相同的jar包,每个项目都要导入jar包,太麻烦
此时可以通过Maven,将jar包放到Maven仓库中,在项目中引用仓库中的jar包
解决jar包的依赖
jar包之间存储依赖关系,并且依赖层次很复杂,很难记住
此时可以使用Maven,帮助我们自动解决jar包间的依赖关系
自动下载jar包
项目中使用的jar数据很多,自己下载并手动添加jar包
此时可以使用Maven,帮助我们自动下载所有相关的jar包
构建过程:编译主代码——>编译测试代码——>执行单元测试——>生成测试报告——>打包——>部署
是一个网络仓库,存储jar包和maven插件
http://repo.maven.apache.org/maven2
http://repo1.maven.org/maven2/
http://mvnrepository.com/
从中央仓库下载的jar包的存放位置,也是一个仓库,只不过是存放在本地电脑上
对某一仓库做的镜像
阿里云提供的 http://maven.aliyun.com/nexus/content/groups/public/
局域网内部搭建的maven服务器
repository 仓库
archetype 原型、骨架(模板)
artifact 手工制品,成品(项目/jar/war)
maven 3.2.5版本要求jdk1.6,其后的版本要求jdk1.7
解压到无中文、无空格,不需要安装
Maven依赖于JAVA_HOME
echo %JAVA_HOME%
echo $JAVA_HOME
Maven环境变量:
测试:mvn -version
编辑/home/soft01/.bashrc文件,在最后一行添加内容:
cd /home/soft01
vi .bashrc
export M2_HOME=/home/soft01/maven/apache-maven-3.2.5
export PATH=$PATH:$M2_HOME/bin
使修改立即生效:
source .bashrc
测试:mvn -version
成功的界面:
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-15T01:29:23+08:00)
Maven home: /home/soft01/maven/apache-maven-3.2.5
Java version: 1.7.0_80, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-oracle/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.16.0-30-generic", arch: "i386", family: "unix"
~/.m2/repository
编辑conf/setting.xml
D:\maven\maven-repo
测试:
cd maven/maven-projects
mvn archetype:generate #创建maven项目
提示:
编辑conf/setting.xml
aliyun
*
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
默认使用maven创建的项目使用的是jdk1.5
修改maven默认使用的jdk版本,编辑conf/setting.xml,在profiles标签中添加如下内容:
jdk‐1.7
true
1.7
1.7
1.7
1.7
Java工程约定的目录结构如下:
|-项目名称
|-src //程序代码
|-main //程序主代码
|-java //源代码
|-用于存放源代码,相当于传统项目的src,如com.itany.usm.dao.UserDao
|-resources //配置文件
|-用于存放配置文件
|-test //测试代码,目录结构与main中一样
|-java
|-resources
|-pom.xml //maven核心配置文件
步骤:
创建Java项目
mvn archetype:generate
指定的信息如下:
archetype:(maven-archetype-quickstart) #使用骨架创建java项目
groupId:com.itany.study #指定组织域名反向+项目名
artifactId:sms #指定模块名称
version:1.0.1 #版本
package:com.itany.study #包名
执行maven操作
cd sms #先切换到项目所在的目录
mvn compile
mvn clean compile test #可以同时执行多个命令
Web项目的约定目录结构如下:
|-项目名称
|-src //程序代码
|-main //程序主代码
|-java //源代码
|-用于存放源代码,相当于传统项目的src,如com.itany.usm.dao.UserDao
|-resources //配置文件
|-用于存放配置文件
|-webapp //网站根目录,相当于传统web项目的WebRoot
|-WEB-INF
|-web.xml
|-test //测试代码,目录结构与main中一样
|-java
|-resources
|-pom.xml //maven核心配置文件
步骤:
创建web项目
mvn archetype:generate
指定的信息如下:
archetype:(maven-archetype-webapp) #使用模板创建web项目
.....
执行maven操作
mvn clean compile package
发布
方式1:使用外部的tomcat
将shop.war包复制到webapps目录下,然后启动tomcat
cd tomcat.../bin
./startup.sh
方式2:使用maven的tomcat插件
mvn tomcat:run
访问
http://localhost:8080/shop
命令 | 作用 | 描述 |
---|---|---|
archetype | 创建maven项目 | 根据模板生成项目骨架 |
clean | 清理 | 删除target目录 |
compile | 编译 | 将main中的源代码编译成字节码,放在target/classes目录下 |
test | 测试 | 执行测试类(使用JUnit),并生成测试报告 |
package | 打包 | 将java项目打包成jar文件,将web项目打包成war文件,放在target目录下 |
install | 安装 | 将项目的jar包安装到本地仓库中,供其他项目使用 |
deploy | 发布/安装 | 将项目的jar包安装到中央仓库中,供其他项目使用,需要账户和密码(了解) |
site | 生成站点 | 生成关于项目介绍的网页 |
注意:
一个项目的构建build的过程通常包括:清理、编译、测试、打包、集成测试、部署等
Maven定义了三套生命周期:clean、default、site
每个生命周期之间是互相独立,每个生命周期内都包含多个阶段,这些阶段是有顺序的,后续的阶段必须等待前面的阶段执行后才能执行
default生命周期包含:compile、test、package
MyEclipse
集成Maven插件
Eclipse
Eclipse For Java EE
IDEA
集成Maven插件
Installations
User Settings
New——>Maven Project——>archetype
New Module——>Maven——>勾选Create from archetype
Maven Projects 显示所有Maven项目
执行生命周期
自定义Maven操作
IDEA中目录是分类型的,常用的四种:
Sources Root 主代码的目录 src/main/java
Test Source Root 测试代码的目录 src/test/java
Resources Root 主代码所需资源的目录 src/main/resources
Test Resources Root 测试代码所需资源的目录 src/test/resources
注:在IDEA中默认创建的目录都是普通的Directory,创建后需要设置目录的类型
转载于:https://blog.51cto.com/12402007/2154869