Maven基础
Maven是项目构建工具。用来依赖管理。
- Maven的好处
使用传统项目开发,项目大小:
使用Maven开发:
Maven项目中没有jar包,但需要使用jar包:
有一个jar包仓库,maven用坐标找到jar包
作为jar包,如何给出坐标?
例如:struts2-core-2.3.24.jar
Apache(公司名称)+struts2(项目名称)+2.3.24(版本信息)
maven项目需要某一个jar包,不需要导入jar包,只需要在maven项目中配置需要的jar包的坐标信息。
maven程序根据jar包坐标信息,去jar包仓库中查找jar包。
jar包仓库,又称maven仓库 。
依赖管理(maven的第一大核心):
就是对jar包统一管理
- Maven的好处如何实现
maven的两大核心:
依赖管理:对jar包管理的过程
项目构建:项目在编码完成后,对项目进行编译、测试、打包、部署一系列的操作都通过命令来实现。
通过maven命令将web项目发布到tomcat:
- Maven安装、配置本地仓库
maven程序安装前提:maven程序java开发,它的运行依赖jdk。
maven的下载安装,参考http://t.csdn.cn/W8Drh
1.下载压缩包
2.解压到本地磁盘,注意解压目录不要有中文、空格
3.配置环境变量
“计算机”右击“属性”,找到“高级系统配置”,点击“环境变量”
在“系统变量”里“新建”一个变量,变量名为“MAVEN_HOME”,变量值为安装的maven文件路径,点击“确定”。
将maven_home环境变量配置到path环境变量中
前提条件:有jdk环境变量:JAVA_HOME
查询maven版本信息,测试是否安装成功:
4.配置本地仓库:
仓库类型:本地仓库、私服、中央仓库
下载bos.repository.zip地址,详见http://t.csdn.cn/LwXU2
解压到本地磁盘
接下来配置本地仓库,让maven程序直到仓库在哪
打开maven的配置文件settings.xml
找到“localRepository”标签注释一段,在注释下添加一句,<localRepository>D:\Maven\bos_repository</localRepository>
标签对之间的路径改为bos_repository文件解压后的路径
备注:
<!-- 配置阿里云 -->
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
//配置jdk
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
Maven项目标准目录结构
maven项目根目录下:
src源文件下:
在eclipse中导入maven项目的目录结构:
Maven的常用命令(应用)
- clean:清理
将项目根目录下target目录(也就是.class文件)清理掉。
- compile:编译
将项目中.java文件编译为.class文件
- test:单元测试
将项目根目录下src/test/java目录下的单元测试类都会执行
单元测试类名有要求:XxxTest.java
- package:打包
web project -->war包
java project -->jar包
将项目打包,打包项目根目录下target目录 - install:安装
解决本地多个项目共用一个jar包
打包到本地仓库
发现在这几个命令中,每执行一个命令,它前面的命令都会执行一遍,这被称为:生命周期
maven项目的生命周期(*):
在maven中存在三套生命周期,每一套生命周期相互独立,互不影响。
在一套生命周期内,执行后面的命令,前面操作会自动执行。
CleanLifeCycle:清理生命周期
clean
defaultLifeCycle:默认生命周期
compile,test,package,install,deploy
siteLifeCycle:站点生命周期
site