概述
- 在
settings.xml
里面的mirrors
标签里面导入
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
2.6、配置本地仓库
在Maven -bin 的同级目录下建立一个文件夹 maven-repo
建立一个本地仓库:localRepository
- 在
settings.xml
里面的localRepository下导入
<localRepository>D:Developapache-maven-3.6.1maven-repo</localRepository>
3、Maveb基础概念
=============================================================================
3.1、仓库
仓库:用于存储资源,主要是各种jar包
关于仓库,我们前面讲到了有三种:本地仓库,私服,中央仓库,其中私服和中央仓库都属于远程仓库
中央仓库:maven团队自身维护的仓库,属于开源的
私服:各公司/部门等小范围内存储资源的仓库,私服也可以从中央仓库获取资源
本地仓库:开发者自己电脑上存储资源的仓库,也可从远程仓库获取资源
私服的作用:
(1)保存具有版权的资源,包含购买或自主研发的jar
(2)一定范围内共享资源,能做到仅对内不对外开放
3.2、坐标
我们说maven的仓库里存储了各种各样的资源(jar包),那这些资源我们如何找到它们呢?我们需要知道它们具体的一个位置才能知道如何找到它们,这个就叫坐标
坐标:maven中的坐标用于描述仓库中资源的位置
maven坐标的主要组成如下:
-
groupId:定义当前资源隶属组织名称(通常是域名反写,如:org.mybatis;com.itheima)
-
artifactId:定义当前资源的名称(通常是项目或模块名称,如:crm,sms)
-
version:定义当前资源的版本号
-
packaging:定义资源的打包方式,取值一般有如下三种
-
jar:该资源打成jar包,默认是jar java工程打包为jar
-
war:该资源打成war包 web工程打包为war
-
pom:该资源是一个父资源(表明使用maven分模块管理),打包时只生成一个pom.xml不生成jar或其他包结构
-
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--指定pom的模型版本-->
<modelVersion>4.0.0</modelVersion>
<!--打包方式 web工程打包为war java工程打包为jar-->
<packaging>war</packaging>
<!--组织id-->
<groupId>com.itheima</groupId>
<!--项目id-->
<artifactId>web01</artifactId>
<!--组织id release代表完成版,SNAPSHOT代表开发版-->
<version>1.0-SNAPSHOT</version>
<!--设置当前工程的所有依赖-->
<dependencies>
<!--具体的依赖-->
<dependency>
</dependency>
</dependencies>
</project>
4、创建一个MavenWeb项目
==================================================================================
-
启动IDEA
-
创建一个
MavenWeb
项目
- 创建完成等待项目初始化完成
-
观察maven仓库中多了什么东西?
-
注意:IDEA项目创建成功后,看一眼Maven的配置
到这里,Maven在IDEA中的配置和使用就OK了!
4.1、标记文件夹功能
我们在创建的MavenWeb
项目的 main 目录下创建 java,resources
- 鼠标悬停在java文件夹,右键
- resources 也同样标记
创建MavenWeb
项目我们需要手动去补全目录,并且要对补全的目录进行标记,切记
5、创建一个普通的Maven项目
==================================================================================
5.1、IDEA配置Tomcat
IDEA配置Tomcat步骤
我们也可以不配置Tomcat,而是在 pom.xml
中配置 tomcat 插件来运行项目
-
在Maven仓库中搜索 tomcat Maven
-
找到 org.apache.tomcat.maven
我们使用2.1版本的,相对来说稳定一些
<!--构建-->
<build>
<!--设置插件-->
<plugins>
<!--具体的插件配置-->
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<!--配置端口-->
<configuration>
<port>80</port>
<!--虚拟路径-->
<path>/</path>
</configuration>
</plugins>
</build>
插件配置好后,在IDEA右侧maven-project
操作面板上可以看到该插件,并且可以利用该插件启动项目
运行后该插件会给我们一个可运行地址:
5.2、pom文件
pom.xml 是Maven的核心配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!--Maven版本和头文件-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.kuang</groupId>
<artifactId>javaweb-01-maven</artifactId>
<version>1.0-SNAPSHOT</version>
<!--Package:项目的打包方式
jar:java应用
war:JavaWeb应用
-->
<packaging>war</packaging>
<!--配置-->
<properties>
<!--项目的默认构建编码-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--编码版本-->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<!--项目依赖-->
<dependencies>
<!--具体依赖的jar包配置文件-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
<!--项目构建用的东西-->
<build>
<finalName>javaweb-01-maven</finalName>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
6、Maven依赖管理
=============================================================================
6.1、依赖配置与依赖传递
依赖是指在当前项目中运行所需的jar,依赖配置的格式如下:
<!--设置当前项目所依赖的所有jar-->
<dependencies>
<!--设置具体的依赖-->
<dependency>
<!--依赖所属群组id-->
<groupId>Junit</groupId>
<!--依赖所属项目id-->
<artifactId>Junit</artifactId>
<!--依赖版本号-->
<version>4.12</version>
</dependency>
</dependencies>
依赖传递:
依赖具有传递性,分两种
(1)直接依赖:在当前项目中通过依赖配置建立的依赖关系
(2)间接依赖:被依赖的资源如果依赖其他资源,则表明当前项目间接依赖其他资源
6.1.1、依赖传递冲突
依赖传递的冲突问题:
在依赖传递过程中产生了冲突,我们有三种优先法则
(1)路径优先:当依赖中出现相同资源时,层级越深,优先级越低,反之则越高
(2)声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖靠后的
(3)特殊优先:当同级配置了相同资源的不同版本时,后配置的覆盖先配置的
以一个项目为根,直接依赖称为1度资源,直接依赖的直接依赖称为2度资源,直接依赖的直接依赖的直接依赖称为3度资源。
当然依赖冲突在这里我们并不需要记,后面会有如何解决此问题的办法。
6.1.2、可选依赖
可选依赖指的是对外隐藏当前所依赖的资源➡不透明
- 加一个
<optional>
标签
<dependencies>
<dependency>
<groupId>Junit</groupId>
<artifactId>Junit</artifactId>
<version>4.12</version>
<optional>true</optional>
</dependency>
</dependencies>
6.1.3、排除依赖
排除依赖指主动断开依赖的资源,被排除的资源无需指定版本
<dependencies>
<dependency>
<groupId>Junit</groupId>
<artifactId>Junit</artifactId>
<version>4.12</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</dependency>
</dependencies>
6.1、依赖范围
依赖的jar默认情况可以在任何地方可用,可以通过scope
标签设定其作用范围
这里的范围主要是指以下三种范围
(1)主程序范围有效(src/main目录范围内)
(2)测试程序范围内有效(src/test目录范围内)
(3)是否参与打包(package指令范围内)
此外:scope
标签的取值有四种:compile,test,provided,runtime
这四种取值与范围的对应情况如下:
7、Maven生命周期与插件
================================================================================
Maven对项目构建的生命周期划分为3套
-
clear:清理工作
-
default:核心工作,例如编译、测试、打包、部署等
-
site:产生报告、发布站点等
7.1、clear生命周期
clean:清理工作
-
pre-clean:执行一些在clean之前的工作
-
clean:移除上一次构建产生的所有文件
-
post-clean:执行一些在clean之后立刻完成的工作
7.2、default生命周期
那么如何才能正确的掌握Redis呢?
为了让大家能够在Redis上能够加深,所以这次给大家准备了一些Redis的学习资料,还有一些大厂的面试题,包括以下这些面试题
-
并发编程面试题汇总
-
JVM面试题汇总
-
Netty常被问到的那些面试题汇总
-
Tomcat面试题整理汇总
-
Mysql面试题汇总
-
Spring源码深度解析
-
Mybatis常见面试题汇总
-
Nginx那些面试题汇总
-
Zookeeper面试题汇总
-
RabbitMQ常见面试题汇总
JVM常频面试:
Mysql面试题汇总(一)
Mysql面试题汇总(二)
Redis常见面试题汇总(300+题)
CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】
an之前的工作
-
clean:移除上一次构建产生的所有文件
-
post-clean:执行一些在clean之后立刻完成的工作
7.2、default生命周期
那么如何才能正确的掌握Redis呢?
为了让大家能够在Redis上能够加深,所以这次给大家准备了一些Redis的学习资料,还有一些大厂的面试题,包括以下这些面试题
-
并发编程面试题汇总
-
JVM面试题汇总
-
Netty常被问到的那些面试题汇总
-
Tomcat面试题整理汇总
-
Mysql面试题汇总
-
Spring源码深度解析
-
Mybatis常见面试题汇总
-
Nginx那些面试题汇总
-
Zookeeper面试题汇总
-
RabbitMQ常见面试题汇总
JVM常频面试:
[外链图片转存中…(img-9vm7tyye-1631064893601)]
Mysql面试题汇总(一)
[外链图片转存中…(img-RhTz6gIO-1631064893602)]
Mysql面试题汇总(二)
[外链图片转存中…(img-uqIynRl7-1631064893603)]
Redis常见面试题汇总(300+题)
[外链图片转存中…(img-QjCF7MuC-1631064893605)]
CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】
绝无套路!!
最后
以上就是碧蓝香氛为你收集整理的Maven技术快速入门(1),springcloud实战演练的全部内容,希望文章能够帮你解决Maven技术快速入门(1),springcloud实战演练所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复