首页 > 代码库 > Maven学习笔记
Maven学习笔记
Maven介绍
Maven是一个采用纯Java编写的开源项目管理工具, Maven采用了一种被称之为Project Object Model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中, 通过该文件Maven可以管理项目的整个生命周期,包括清除、编译,测试,报告、打包、部署等等。目前Apache下绝大多数项目都已经采用Maven进行管理. 而Maven本身还支持多种插件, 可以方便更灵活的控制项目, 开发人员的主要任务应该是关注商业逻辑并去实现它, 而不是把时间浪费在学习如何在不同的环境中去依赖jar包,项目部署等。Maven正是为了将开发人员从这些任务中解脱出来而诞生的。
. 1.maven 解决的问题
- jar包的声明式依赖管理与管理
- 自动构建、发布项目
软件构建的生命周期:
清除--> 编译-->测试-->报告-->打包(jar\war)-->安装-->部署到远程
2. maven、ant、svn的区别
- maven与ant之间的区别
都是软件构建工具、软件管理工具,maven比ant更加强大,已经取代了ant
maven优点:
- jar包声明式依赖
- jar包仓库
- maven 与svn的区别
1.maven 软件构建工具,是软件源码已经完毕,需要构建,需要部署与发布
svn 是版本控制工具,是协同开发工具
svn 仓库 :
1. 项目源码保存
2. 历史版本的备份
3. 每一次版本的修改情况
配置环境变量(配置之前,必须确定配置了JDK环境变量)
MAVEN_HOME : D:\apache-maven-3.3.9
把此命令添加到Path中: %MAVEN_HOME%\bin\
l 配置用户范围的settings.xml
MAVEN_HOME/conf/settings.xml 全局的
~/.m2/settings.xml 单个用户的
l 验证安装是否成功
在命令行上输入: mvn -v;回车, 如看到下面信息表示安装成功
Maven目录分析
l bin:含有mvn运行的脚本
l boot:含有plexus-classworlds类加载器框架
l conf:含有settings.xml配置文件
l lib:含有Maven运行时所需要的java类库
l Settings.xml 中默认的用户库: ${user.home}/.m2/repository
l Maven默认仓库下载地址在: maven的lib目录下maven-model-builder-3.3.4.jar的pom.xml中
Hello
--src
-----main
----------java --用来存放Java文件
----------resources --用来存放资源文件
-----test
---------java --用来存放测试的Java文件
---------resources
--target --项目输出位置,编译完毕后自动生成
--pom.xml -- 项目对象模型的描述 ,它是maven配置的核心
Maven坐标
类似在平面几何中坐标(x,y)可以标识平面中唯一的一点, Maven世界拥有大量构建,我们需要找一个用来唯一标识一个构建的统一规范
拥有了统一规范,就可以把查找工作交给机器
l groupId:定义当前Maven项目隶属项目 (实际对应JAVA的包的结构, 是main目录里java的目录结构)
l artifactId:定义实际项目中的一个模块(项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称)
l version:定义当前项目的当前版本
Maven仓库
l 何为Maven仓库:用来统一存储所有Maven共享构建的位置就是仓库
l Maven配置jar包的路径为:groupId/artifactId/version/artifactId-version
l 本地仓库(~/.m2/repository/):每个用户只有一个本地仓库
l 中央仓库(Maven默认的远程仓库):Maven默认的远程仓库下载地址为:http://repo1.maven.org/maven2
l 私服:是一种特殊的远程仓库, 它是架设在局域网内的仓库, 主要是为了团队协作开发
l 镜像:用来替代中央仓库, 速度一般比中央仓库快
maven常用命令
mvn -v 查看maven版本
compile编译
test 测试
package 打包
clean 清楚target
install 安装jar包到本地仓库中
创建目录的两种方式:
1.archetype:generate 按照提示进行选择
2.archetype:generate -DgroupId=组织名,公司网址的反写+项目名
-DartifactId=项目名-模块名
Maven学习笔记