当前位置: 首页 > news >正文

8.4 Java Web(Maven P50-P57)

Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具

Maven的作用

1.依赖管理:方便快捷地管理项目依赖的资源包(jar包),避免版本冲突问题

2.统一项目结构:提供标准、统一的项目结构

                           

3.项目构建:标准跨平台(Linux、Windows、MacOS)的自动化项目构建方式

官网:https://maven.apache.org/

Maven的安装 

1.解压apache-maven-3.6.1-bin.zip

2.配置本地仓库:修改conf/settings.xml中的<localRepository>为一个指定目录

                  <localRepository>/"D:\Maven\apache-maven-3.9.11\mvn_repo"</localRepository>

3.配置阿里云私服:修改conf/settings.xml中的<mirrors>标签,为其添加如下子标签

                  

4.配置环境变量:MAVEN_HOME为maven的解压目录,并将其bin目录添加到PATH环境变量

IDEA集成Maven 

网上找教程即可,特别注意两点:

1.阿里云私服的<mirror>标签内容有修改,要去找最新版,否则无法找到远程仓库

2.复制文件地址时(本地仓库地址),会在地址两边加" ",要记得去掉" ",否则地址报错

Maven坐标

Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置

使用坐标来定义项目或引入项目中所需要的依赖

Maven坐标的组成:

1.groupId:定义当前Maven项目隶属组织名称(如com.itheima)

2.artifactId:定义当前Maven项目名称(模块名称)

3.version:定义当前项目版本号

Maven依赖管理

依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖

依赖配置

1.在pom.xml中编写<dependencies>标签

2.在<dependencies>标签中使用<dependecy>引入坐标

3.定义坐标的groupId,artifactId,version

4.点击刷新按钮,引入最新加入的坐标

    <!--依赖配置--><dependencies><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.5.18</version></dependency></dependencies>

依赖传递

依赖具有传递性,依赖分为直接依赖和间接依赖

有以下三个maven项目,分别为maven_projectA、maven_projectB、maven_projectC

<?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"><modelVersion>4.0.0</modelVersion><groupId>com.itheima</groupId><artifactId>maven_projectA</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.5.18</version></dependency><dependency><groupId>com.itheima</groupId><artifactId>maven_projectB</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies></project>
<?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"><modelVersion>4.0.0</modelVersion><groupId>com.itheima</groupId><artifactId>maven_projectB</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version></dependency><dependency><groupId>com.itheima</groupId><artifactId>maven_projectC</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies></project>
<?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"><modelVersion>4.0.0</modelVersion><groupId>com.itheima</groupId><artifactId>maven_projectC</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.18.0</version></dependency></dependencies></project>

 可以查看其依赖关系

 如果A只想依赖B,而不想要间接依赖B的依赖资源,可以排除依赖,排除依赖指主动断开依赖的资源,被排除的资源无需指定版本,例如这里A不想要junit依赖

<?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"><modelVersion>4.0.0</modelVersion><groupId>com.itheima</groupId><artifactId>maven_projectA</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.5.18</version></dependency><dependency><groupId>com.itheima</groupId><artifactId>maven_projectB</artifactId><version>1.0-SNAPSHOT</version><!-- 排除依赖--><exclusions><exclusion><groupId>junit</groupId><artifactId>junit</artifactId></exclusion></exclusions></dependency></dependencies></project>

 

依赖范围

以来的jar包默认情况下可以在任何地方使用,可以通过<scope></scope>设置其作用范围

1.主程序范围有效(main文件夹范围内)

2.测试程序范围有效(test文件夹范围内)

3.是否参与打包运行(package指令范围内)

生命周期

对所有的maven项目构建过程进行抽象和统一,Maven中有3套独立的生命周期

1.clean:清理工作

2.default:核心工作,如:编译、测试、打包、安装、部署等

3.site:生成报告、发布站点等

每套生命周期包含一些阶段(phase),阶段是有顺序的,后面的阶段依赖于前面的阶段

 主要的生命周期阶段

1.clean:移除上一次构建生成的文件

2.compile:编译项目源代码

3.test:使用合适的单元测试框架运行测试(junit)

4.package:将编译后的文件打包,如:jar、war等

5.install:安装项目到本地仓库

在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行

执行指定生命周期的两种方式

1.在IDEA右侧的maven工具栏中,选中对应的生命周期,双击运行

   

2.在命令行中通过命令执行

   

http://www.dtcms.com/a/314912.html

相关文章:

  • 【web应用】为什么 子模块已经删除,但 Maven 依赖项仍然报错?
  • python采集拍立淘按图搜索API接口,json数据参考
  • maven install和package的区别
  • AI绘图-Stable Diffusion-WebUI的基本用法
  • 安卓开发--ConstraintLayout(约束布局)
  • 5天挑战网络编程 -DAY1(linux版)
  • 二十年代深度立体匹配的进化与前沿综述
  • 咖啡参考基因组
  • 机器学习 入门——决策树分类
  • FreeRTOS源码分析四:时钟中断处理响应流程
  • 倒排索引:Elasticsearch 搜索背后的底层原理
  • 【C#】Blazor基本应用
  • ICCV2025 Tracking相关paper汇总和解读(19篇)
  • Matlab(2)
  • Maven配置,Idea集成Maven_依赖引入,Idea生成单元测试
  • 《AI Agent工程师(初级)》
  • ubuntu24.01安装odoo18
  • gdb print设置技巧,离线查看复杂结构体和数组变量内容,展开多层嵌套的结构体的方法
  • 【Docker安装】Ubuntu 24.04.2 LTS系统下安装Docker环境——指定APT源安装方式
  • C + +
  • 宝塔运维实战:CentOs7启动PHP7.4失败
  • 华为OD机考2025C卷 - 最小矩阵宽度(Java Python JS C++ C )
  • Linux下PXE服务器搭建
  • 嵌入式数据结构笔记(二):内存工具与链表操作
  • QT 如何实现enum与字符串的互转
  • Java基础学习(一):类名规范、返回值、注释、数据类型
  • 【QT】安装与配置
  • 应急响应复现
  • Java 课程,每天解读一个简单Java之正整数分解质因数
  • 字符集选择utf8mb4