赞
踩
对maven的学习总结
Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
Maven是用Java语言编写的。他管理的东西统统以面向对象的形式进行设计,最终他把一个项目看成一个对象,而这个对象叫做POM(project object model),即项目对象模型
Maven的核心包括项目对象模型和依赖管理。
所谓依赖管理就是maven对项目所有依赖资源的一种管理,它和项目之间是一种双向关系,即当我们做项目的时候maven的依赖管理可以帮助你去管理你所需要的其他资源,当其他的项目需要依赖我们项目的时候,maven也会把我们的项目当作一种资源去进行管理,这就是一种双向关系。
Maven除了帮我们管理项目资源之外还能帮助我们对项目进行构建,管理项目的整个生命周期,当然它的这些功能需要使用一些相关的插件来完成,当然整个生命周期过程中插件是需要配合使用的,单独一个无法完成完整的生命周期。
Maven进行依赖管理的资源主要来自于:本地仓库,私服,中央仓库
本地仓库顾名思义就是存储在本地的一种资源仓库,如果本地仓库中没有相关资源,可以去私服上获取,私服也是一个资源仓库,只不过不在本地,是一种远程仓库,如果私服上也没有相关资源,可以去中央仓库去获取,中央仓库也是一种远程仓库。
总之,Maven的功能主要可以分为三个
src/main/java:存放项目的java源码
src/main/resources:项目的相关配置文件(比如mybatis配置,xml映射配置,自定义配置文件等)
src/main/webapp:web资源(比如html,css,js等)
src/test/java:编写测试代码
src/test/resources:测试代码相关配置文件
src/pom.xml:项目pom文件,Maven的配置文件
maven是一款绿色软件,解压到合适的位置即可。
maven的目录结构如下:
bin:可执行程序目录,
boot:maven自身的启动加载器
conf:maven配置文件的存放目录
lib:maven运行所需库的存放目录
Maven配置环境变量与配置jdk类似。
打开我的电脑
点击右键进入属性
进入高级系统设置
进入环境变量
配置系统变量,点击新建,变量名输入 MAVEN_HOME ,变量值输入maven的安装位置,到maven的最外层目录即可,可以直接点击浏览目录找到maven的安装目录。
配置path的环境变量。
点击新建,输入 %MAVEN_HOME%\bin
测试配置是否成功
打开命令行工具,输入mvc -version,显示出版本号,就代表配置成功.
仓库:用于存储资源,主要是各种jar包。
坐标:用于描述仓库中资源位置。
maven坐标的主要组成如下:
groupId:定义当前资源隶属组织名称
artifactId:定义当前资源的名称
version:定义当前资源的版本号
packaging:定义资源打包方式
一般有三种:
1.jar:打成jar包,默认值
2.war:打成war包
3.pom:表示该资源是一个父资源
如果需要去查找某个资源的地址,可以去https://mvnrepository.com进行搜索。
本地仓库配置
可以去maven的配置文件setting.xml中进行配置
可以设置自己本地仓库的位置,如果不自己配置,会有默认位置。
配置远程仓库
由于maven的默认仓库在国外,速度较慢,可以配置成国内的镜像仓库。依然在config/setting.xml中进行配置。
需要配置到标签里面
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
maven的目录结构如下:
1.编译: mvn compile
2.清理: mvn clean
3.测试 : mvn test
4.打包: mvn package
5.安装到本地仓库: mvn install
1.在idea中先配置Maven
2.创建maven项目
选择maven,按要求一步步填即可.
在pom文件中,加入
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</build>
然后到idea右侧的项目的插件中选择tomcat,执行tomcat:run,便可以启动服务器了。
依赖具有传递性,分两种
(1)直接依赖:在当前项目中通过依赖配置建立的依赖关系
(2)间接依赖:被依赖的资源如果依赖其他资源,则表明当前项目间接依赖其他资源
在依赖传递过程中产生了冲突,我们有三种优先法则
(1)路径优先:当依赖中出现相同资源时,层级越深,优先级越低,反之则越高
(2)声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖靠后的
(3)特殊优先:当同级配置了相同资源的不同版本时,后配置的覆盖先配置的
依赖是有范围的,主要指以下三个范围
1.主程序范围有效
2.测试程序范围有效
3.是否参与打包
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。