34-Maven

34-Maven笔记-qianfeng-笔记



在这里插入图片描述

一、Maven简介

①:在项目中如何导入jar包

  • 下载jar包(mvn)
  • 将下载的jar包拷贝到相中(WEB-INF/lib)
  • 选择jar文件–右键–Add as Library

②:传统导入jar包的方式存在什么问题?

  • 步骤多(相对)一一繁琐
  • 在不同的项目中如果需要相同的jar包,需要分别存储这个jar文件一一冗余、项目体积大
  • 在不同的环境下可能因为ja文件版本不一致导致项目无法运行(重新配置)一一移植性差

③:项目的生命周期

  • 项目从编译到运行的整个过程
  • 完整的生命周期:清理缓存一校验一编译一测试订包一安装一部署

DEA提供了一键构建项目的功能,但是如果我们需要自定义的生命周期管理,却没有现成的工具(清理缓存)

④:Maven简介

Maven是个基于项目对象模型(P0M)用于进行项目的依赖管理、生命周期管理的工具软件

项目的依赖(Gar包)管理
项目生命周期管理
聚合工程

二、Maven安装及配置

①:Maven下载

官网地址:https://maven.apache.org/
点击下载
在这里插入图片描述
下载对应系统的版本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

②:Maven安装

Maven是基于Java语言进行开发的,因此依赖JDK(建议JDK1.7+)
开箱即用:直接解压即可

  • 解压(d/mvn)
  • 目录结构:
    • bin存放指令文件(Maven提供了一个mvm指令)
    • boot包含了一个类加载框架的jar文件
    • conf包含了Maven的核心配置文件settings.xml
    • Iib存放了maven运行所需的jar文件

③:配置环境变量

1. MAVEN_HOME D:mvn\apache-maven-3.6.3
在这里插入图片描述
2. Path 增加 %MAVEN_HOME%\bin
在这里插入图片描述
测试
在这里插入图片描述

三、Maven的项目结构

使用Maven进行项目还有一个好处:无论使用什么样的开发工具(eclipse/idea)项目的结构是统一的。

①:Maven的项目结构

- src
	- main                   :程序功能代码
		- Java               :java代码
		- resource           :资源代码、配置代码
	- test                   :测试代码
		- Java               :单元测试java代码
		- resource           :资源代码、配置代码
	- pom.xml                :项目对象模型

在这里插入图片描述

②:pom.xml

POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。

执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。

POM 中可以指定以下配置:

项目依赖
插件
执行目标
项目构建 profile
项目版本
项目开发者列表
相关邮件列表信息

在创建 POM 之前,我们首先需要描述项目组 (groupId), 项目的唯一ID。


<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>
    <!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.companyname.project-group,maven会将该项目打成的jar包放本地路径:/com/companyname/project-group -->
    <groupId>com.companyname.project-group</groupId>
 
    <!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 -->
    <artifactId>project</artifactId>
 
    <!-- 版本号 -->
    <version>1.0</version>

	<!-- 配置当前项目的依赖 -->
	<dependencies>
		
	</dependencies>
</project>

如果需要在当前项目中添加依赖,只需在pom.xml文件中进行依赖配置即可

配置依赖 找到依赖的坐标,添加dependencies标签即可

<!--https://mvnrepository.com/artifact/mysq1/mysql-connector-java-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>

在这里插入图片描述

四、依赖管理

①:Maven进行依赖管理的流程

在这里插入图片描述

②:仓库介绍

  • 本地仓库 就是本地计算机上的某个文件夹(可以是自定义的任何文件夹)
  • 远程仓库 就是远程主机上的jar文件仓库
    • 中央仓库 maven官方提供的仓库,包含了所需的一切依赖(免配置)
    • 公共仓库 除了中央仓库以外的第三方仓库都是公共仓库,例如aliyun(需要配置)
    • 私服 企业搭建的供内部使用的maven仓库
      在这里插入图片描述

③:Maven仓库配置

01.配置本地仓库

  <localRepository>D:\OOP\java\maven\mvn_resp</localRepository>

在这里插入图片描述

02.配置公共仓库

在这里插入图片描述

	 <mirror>
		<id>alimaven</id>
		<name>aliyun maven</name>
		<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
		<mirrorOf>central</mirrorOf>
	</mirror>

在这里插入图片描述

五、项目的生命周期管理

①:生命周期介绍

项目构建的声明周期:项目开发结束之后部署到运行环境运行的过程

  • 清除缓存
  • 检查
  • 编译
  • 测试 (就会执行maven项目中test目录下的单元测试)
  • 打包(war、jar)
  • 安装(Gar会被安装到本地仓库)
  • 部署(将项目生成的包放到服务器中)

②:生命周期管理指令

在项目的根目录下执行mvn指令(此目录下必须包含pom.xml)

  • 清除缓存

    mvn clean
    
  • 检查

    mvn  check
    
  • 编译

     mvn  compile
    
  • 测试 (就会执行maven项目中test目录下的单元测试)

     mvn test
    
  • 打包(war、jar)

    mvn package
    
  • 安装(Gar会被安装到本地仓库)

     mav install
    
  • 部署(将项目生成的包放到服务器中)

      mvn deploye
    

六、基于IDEA中使用Maven

①:在IDEA中关联Maven

说明:IDEA本身集成了Maven,考虑到lDEA和Maven版本的兼容性
Idea不建议配置比默认版本更新的版本建议 使用idea自带的maven
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

②:使用IDEA创建Maven项目

01.创建Java项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

02.创建Web项目

1.先创建一个Java项目
在这里插入图片描述
在这里插入图片描述
2.完善web项目结构
在这里插入图片描述
https://blog.youkuaiyun.com/cdmamata/article/details/52683719
在这里插入图片描述在这里插入图片描述
3.配置web组件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.部署web项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

③:在IDEA中使用Maven对项目进行管理

https://mvnrepository.com/
在这里插入图片描述

④:依赖范围

在通过dependencyi添加依赖时,可以通过scope标签配置当前依赖的适用范围

  • test只在项目测试阶段引入当前依赖(编译、测试)
<dependency> 
	<groupId>junit</groupId> 
	<artifactId>junit</artifactId>
	<version>4.13.2</version>
	<scope>test</scope> 
</dependency>
  • runtime 只在运行时使用(运行、测试运行)
  • provided 在(编译、测试、运行)
  • compile 在(编译、测试、运行、打包)都引入

⑤:在IDEA中使用Maven进行项目构建

01.Maven项目构建生命周期说明

  • clean 清理缓存清理项目生成的缓存
  • validate 校验验证项目需要是正确的(项目信息、依赖)
  • compile 编译编译项目专供的源代码
  • test 测试运行项目中的单元测试
  • package 打包将项目编译后的代码打包成发布格式 。
  • verify 检查对集成测试的结果进行检查、确保项目的质量是达标的
  • install 安装将包安装到maven的本地仓库,以便在本地的其他项目中可以引用此项目(聚合工程)
  • deplo 部署将包安装到私服的仓库,以供其他开发人员共享

02.IDEA进行生命周期说明

在这里插入图片描述

七、私服

企业搭建供内部使用的一个Maven仓库 。

  • 开发者需要依赖直接从私服下载
  • 私服可以实现企业内部依赖的共享:当企业开发了一个通用插件r),可以发布到私服,可以连接到 当前私服的其他开发者就可以共享这个插件了

①:私服搭建

我们可以通过专门的Maven仓库管理软件来搭建私服。例如:Apache ArchivaNexus

01.下载nexus

在这里插入图片描述
在这里插入图片描述

02. 安装并运行nexus

  • ①. 使用管理员运行cmd
  • ②.进入nexus-2.14.11-01\bin目录中执行以下命令

在这里插入图片描述

先进入到日志目录nexus-2.14.4-03\logs\wrapper.log下,查看错误信息,主要是没找到本地的jdk

在这里插入图片描述> 进入nexus-2.14.4-03\bin\jsw\conf\wrapper.conf,找到此处修改成自己的jdk路径

在这里插入图片描述> 修改完毕,在bin目录下重新输入nexus start,启动成功

在这里插入图片描述

停止命令 nexus stop

03.登录Nexus

私服登录地址 默认端口号 8081

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

04.私服仓库组配置

在这里插入图片描述

在这里插入图片描述

添加阿里中央仓库

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

②:配置私服

1: 在mavensettings..xml文件的servers标签中 配置认证信息

<!--配置连接私服所需的帐号和密码--> 
<server>
	 <id>nexus-public</id><!--nexus的认证id--> 
	 <username>admin</username><!--nexus中的用户名密码--> 
	 <password>admin123</password> 
</server>

在这里插入图片描述

2: 在mavensettings.xml文件的profiles标签中

  • repositorypluginRepositoryid子标签的值,要和上面配置的serverid子标签的值一致
<profile> 
	<id>nexus</id> 
	<repositories> 
		<repository> 
			<id>nexus-public</id> 
			<name>Nexus Release Snapshot Repository</name> 
			<url>http://localhost:8081/nexus/content/groups/public/</url> 
			<releases><enabled>true</enabled></releases> 
			<snapshots><enabled>true</enabled></snapshots> 
		</repository> 
	</repositories> 
	<pluginRepositories> 
		<pluginRepository> 
			<id>nexus-public</id> 
			<url>http://localhost:8081/nexus/content/groups/public/</url> 
			<releases><enabled>true</enabled></releases>
			<snapshots><enabled>true</enabled></snapshots>
		</pluginRepository> 
	</pluginRepositories>
</profile>

在这里插入图片描述

3: 在mavensettings.xml文件的activeProfiles配置激活profile

  <activeProfiles>
    <activeProfile>nexus</activeProfile>
  </activeProfiles>

在这里插入图片描述
在这里插入图片描述

八、Maven聚合工程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七@归七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值