基于项目对象模型(pom),可以用来管理项目的构建、报告和文档的软件项目管理工具。统一帮助我们管理第三方jar包。
bin:mvn的运行脚本
boot:一个类加载器框架,加载自己的类
conf:配置文件
lib:所有的类库
电脑自己使用,就在系统变量里创建,多人使用为避免给他人造成麻烦,则使用用户变量。
系统变量添加:
M2_HOME=E:\myprograms\Maven\apache-maven-3.3.3(解压的文件目录)
PATH后面加:%M2_HOME%\bin
cmd查看安装是否成功:
mvn -v
结果:
C:\Users\CL>mvn -v
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T19:57:37+08:00)
Maven home: E:\myprograms\Maven\apache-maven-3.3.3
Java version: 1.8.0_121, vendor: Oracle Corporation
Java home: E:\java\jdk1.8\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"
----成功
maven目录结构:
src
-main
-java
-resources
-test
-jave
-package
-resouecre
操作:
在 E:\myprograms\Maven\下建立code目录,存放代码。
mvn -v:查看版本
mvn compile:编译
test:测试
package:打包
clean: 删除target
install:安装jar到本地仓库
archetype插件帮助创建maven规定的目录框架
方法二:mvn archetype:generate -DgroupId=com.imooc.maven04 -DartifactId=maven04-demo -Dversion-1.0.0SANPSHOT -Dpackage=com.imooc.maven04.demo
结果:
groupId: com.imooc.maven04
artifactId: maven04-demo
version: 1.0.0
——DgroupId:公司网址反写+项目名
-DartifactId=项目名-模块名
-Dversion=版本号
-Dpackage=代码所存在的包名
package: com.imooc.maven04.demo
方法一:mvn archetype:generate +回车--》按提示创建
坐标:
eg:
仓库:
本地仓库
远程仓库
本地找不到去远程,远程找不到,报错,找到则下载到本地。
全球仓库地址:
如何找全球仓库地址:
打开maven-----》
apache-maven-3.3.3\lib\maven-model-builder-3.3.3\org\apache\maven\model----》
找到pom.4.0.0.xml里就有Central Repository
所有的pom文件都是它pom.4.0.0.xml的继承
仓库是国外的,无法访问外网,国内有其镜像仓库
修改镜像仓库位置
到apache-maven-3.3.3\conf--->找settings.xml的146行
复制
修改内容为:
更改仓库位置:
所有仓库文件都在C:\Users\CL\.m2\repository
eg:
settings.xml 54行复制出来,
---》在maven里创建repo
----》将54行改为如下,并保存
将settings.xml复制一份放到repo下,这样以后,maven版本变了不用再修改settings.xml.
myeclipse或者eclipse4.0以上不用安装插件。
判断方式:进入eclipse-->window->references里有无maven选项
完整项目构建过程:
清理、编译、测试、打包、继承测试、验证、部署
maven的三套生命周期:
clean:清理项目
pre_clean 执行清理前的工作
clean 清理上一次构建生成的所有文件
post_clean:执行清理后的所有文件
default:生成项目(最核心)
常用的:
compile、 test、 package、 install
site:生成项目站点:根据pom的信息
pre_site:生成站点前的工作
site:生成项目的站点文档
post-site 在生成项目站点后完成的工作
site-deploy:发布生成的站点到服务器上
相互独立,每个生命周期包含一些阶段,各个阶段有顺序,后面依赖前面的,但不会触发其他生命周期。
clean compile test package install
运行package这个阶段时,compile和test会顺序执行
maven的source插件使用,package阶段时就打包,生成**-source.jar
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-source-pluginartifactId>
<version>2.4version>
<executions>
<execution>
<phase>packagephase>
<goals>
<goal>jar-no-forkgoal>
goals>
execution>
executions>
plugin>
plugins>
build>
alpa 内部测试
beta 公测
Release 稳定
GA正式发布
打包方式,默认jar