十八、Maven使用(1)

本文详细介绍Maven的基本概念、安装配置步骤及如何在IDEA中创建和管理Maven项目。此外,还介绍了Maven依赖管理和插件配置的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一章 Maven概述

擅长管理大型项目
自动管理你需要的jar包
自动进行下载我们需要的jar包。

1 Maven的概念

Maven是项目进行模型抽象,充分运用面向对象的思想,Maven可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。

说白了: Maven是由Apache开发的一个工具用来管理java项目, 依赖管理(jar包的管理),项目构建.

2 Maven的作用

  • 依赖管理: maven对项目的第三方构件(jar包)进行统一管理。向工程中加入jar包不要手工从其它地方拷贝,通过maven定义jar包的坐标,自动从maven仓库中去下载到工程中。

  • 项目构建: maven提供一套对项目生命周期管理的标准,开发人员、和测试人员统一使用maven进行项目构建。项目生命周期管理:编译、测试、打包、部署、运行。

  • maven对工程分模块构建,提高开发效率。

3 Maven的概念模型

在这里插入图片描述

4 Maven的仓库

4.1 Maven的仓库

仓库名称作用
本地仓库相当于缓存,工程第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。第二次不需要从远程仓库去下载。先从本地仓库找,如果找不到才会去远程仓库找。
中央仓库就是远程仓库,仓库中jar由专业团队(maven团队)统一维护。中央仓库的地址:http://repo1.maven.org/maven2/
远程仓库(私服)私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven须要下载构件的时候。它从私服请求,假设私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。

在这里插入图片描述
默认settings.xml中配置的是远程中央仓库的地址,如果想用阿里的,改为阿里私服的地址即可

4.2 仓库中存放的内容

  • Maven自身运行所需要的插件
  • 第三方框架(spring/mybatis/springmvc)和工具类的jar包
  • 我们自己开发的maven项目安装后的jar包

5 Maven的坐标

Maven的一个核心的作用就是管理项目的依赖,引入我们所需的各种jar包等。在Maven中,不论什么一个依赖、插件或者项目构建的输出, 都能够称之为构件

为了能自动化的解析任何一个Java构件. Maven必须将这些Jar包或者其他资源进行唯一标识,这是管理项目的依赖的基础,也就是我们要说的坐标

包括我们自己开发的项目,也是要通过坐标进行唯一标识的,这样才能才其它项目中进行依赖引用。坐标的定义元素如下:

  • groupId:项目组织唯一的标识符,实际对应JAVA的包的结构
    • (一般写公司的组织名称 例如:com.itheima,com.alibaba)
  • artifactId: 项目的名称
  • version:定义项目的当前版本 ,SNAPSHOT快照版 Release 稳定版

例如:要引入druid的jar包,只需要在pom.xml配置文件中配置引入druid的坐标即可:

<!--druid连接池-->
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid</artifactId>  
  <version>1.1.10</version>  
</dependency>

第二章 maven的安装(软件)

1 下载maven

在这里插入图片描述

2 安装maven

将maven压缩包解压, 复制到没有中文没有空格的目录下,即安装完毕
在这里插入图片描述

3 maven的目录介绍

目录名作用
bin可执行指令
boot第三方类的加载框架
conf配置文件目录
libmaven自身的类库

4 配置环境变量

MAVEN_HOME=D:\01_install\03_kaifa\apache-maven-3.6.1
Path=%MAVEN_HOME%\bin;... ...

在这里插入图片描述
在这里插入图片描述
配置Maven的时候(必须MAVEN_HOME)

  1. MAVEN_HOME: 配置到Maven工具解压目录
  2. path: 配置到Maven工具解压之后里面的bin目录

5 配置本地仓库

1、找到Maven解压目录\conf\settings.xml 
2、在setting.xml 文件中找到 localRepository 标签 
3、将 <localRepository>/path/to/local/repo</localRepository>从注释中取出 
4、将标签体内容修改为自定义的Maven仓库目录

1 本地建立repository目录
自己建立本地repository目录(或者拷贝别人现成的repository目录),存放jar包的地方。
一般放在maven的安装目录下。

2 settings.xml中配置repository目录路径
在maven的安装目录中 maven/conf/settings.xml 配置本地仓库:
在这里插入图片描述

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
		  
	<localRepository>D:\01_install\03_kaifa\repository_maven</localRepository>

3 settings.xml中配置私服地址
中央仓库可能会被xx,所以选用阿里的私服,这样速度会快些,配置阿里云远程仓库 。

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

6 测试maven安装成功

打开cmd本地控制台, 输入

mvn -version

在这里插入图片描述

第三章 IDEA整合本地Maven

1 IDEA配置maven环境

idea中自带的bundle maven,我们不使用,我们换成自己的maven目录
方式一:
在这里插入图片描述

方式二:
在这里插入图片描述
在这里插入图片描述
问题: 解决创建工程缓慢
因为 联网 下载骨架内容, 所以 会导致创建工程缓慢

-DarchetypeCatalog=internal

在这里插入图片描述
配置自动导入java包,不用自己刷新:
importing ——> import maven projects automatically

2 IDEA创建maven工程

2.1 创建空工程

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

2.2 创建没有骨架的javaSE工程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建java代码:
在这里插入图片描述

package cn.itcast;

public class ProductDao {
    public void add() {
        System.out.println("1 添加商品 ... ...");
    }

    public void del() {
        System.out.println("2 删除商品 ... ...");
    }

    public void update() {
        System.out.println("3 修改商品 ... ...");
    }

    public void queryAll() {
        System.out.println("4 查询所有商品 ... ...");
    }
}

创建测试代码:
正式上线前, 每个方法都必须经过测试, 目前我们能够想到的就是main方法.

因为一个类只有一个main方法, 一个类可能有上千个方法, 那得需要多少个方法, 所以 迫切需要更高效方法, junit测试登场了.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为什么junit报红? 因为缺少junit包, 导入缺少的junit包即可.
解决pom依赖问题:
在这里插入图片描述

<?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>cn.itcast</groupId>
    <artifactId>day1801</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!--导入junit包-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>
</project>

2.3 创建有骨架的javaSE工程

在这里插入图片描述
在这里插入图片描述
缺少 resources目录 补上
在这里插入图片描述
在这里插入图片描述
pom.xml中会产生很多多余的配置
注意pom中可能jdk编译版本不对,改为1.8 make compile

2.4 创建有骨架的javaEE工程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
标准web工程目录结构
自己建立main下的resources目录
自己建立test目录以及下面的java目录、resources目录
并且make directory as source root 、resources root
test source root 、test resources root:目录颜色变蓝变绿
在这里插入图片描述
web.xml:
更新为3.1 而不是默认的2.3 ,2.3版本是不支持注解的
方法:用以前资料里的web.xml替换idea中自动生成的

pom.xml的依赖问题
写依赖dependency如servlet,先写artifactId,会自动补全groupId
tool bottons:项目界面右边的Maven Projects中可以查看引入的jar包
junit默认是4.1.1, 修改为4.1.2,否则Spring会有问题

2.5 创建没有骨架的javaEE工程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
问题: 缺少webapp 目录
在这里插入图片描述

问题: 缺少 web.xml

在这里插入图片描述

2.6 IDEA集成配置外部Tomcat启动

配置本地Tomcat路径的位置
Deployment下:选javaee:war exploded:热部署:这样修改源码后,不需要重新发布tomcat
Application context: / 发布项目的URL中就没有前缀目录
Server 中选项选update classes and resources

第四章 Maven依赖管理

1 maven插件

在这里插入图片描述

1.1 jdk编译版本的插件

在这里插入图片描述

<!-- java编译插件 -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.2</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

在这里插入图片描述

1.2 maven内部tomcat7服务端的插件(可选)

如果想使用tomcat8.X版本,需要使用idea集成外部的tomcat

<!-- 配置Tomcat插件 -->
<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <!--配置端口号-->
        <port>80</port>
        <!--配置项目路径-->
        <path>/day1804</path>
    </configuration>
</plugin>

在这里插入图片描述
在这里插入图片描述
tomcat 插件注意问题

Maven的中央仓库中只有tomcat7.X版本

如果想使用tomcat8.X版本,

  1. 需要从第三方仓库查找
  2. 或者使用idea集成外部的tomcat插件

2 导入依赖

https://mvnrepository.com/
仓库中可以提供坐标

2.1 导入junit依赖

导入junit坐标

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
</dependencies>

在这里插入图片描述

2.2 导入servlet的依赖

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

注意事项:
本地仓库中没有的,pom中加入dependency坐标从中央仓库中下载jar包到本地仓库中。
当本地仓库有变动时,就要update更新,保持idea与本地仓库jar包一致

3 依赖范围

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值