• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
tyrantblue
博客园    首页    新随笔    联系   管理    订阅  订阅
Java学习笔记 (十四) maven1

Maven

介绍

Maven是apache旗下的一个开源项目, 是一款用于管理和构建java项目的工具, 基于项目对象模型(POM)的概念, 通过一小段信息来管理项目的构建

Apache软件基金会, 成立于1999年7月, 是目前世界上最大的最受欢迎的开源软件基金会, 也是一个专门为支持开源项目而生的非营利性组织

开源项目: https://www.apache.org/index.html#projexts-list

作用:

  1. 依赖管理: 方便快捷的管理项目依赖的资源(jar包), 避免版本冲突问题,
  2. 统一项目结构: 提供标准, 统一的项目结构
  3. 项目构建: 标准跨平台(Linux, Windows, MaxOS)的自动化项目构建方式

仓库: 用于存储资源, 管理各种jar包

  • 本地仓库: 自己计算机上的一个目录
  • 中央仓库: 由Manen团队维护的全球唯一的, 仓库地址:https://repo1.maven.org/maven2/
  • 远程仓库(私服): 一般由公司团队搭建的私有仓库

idea集成

安装

下载地址:https://archive.apache.org/dist/maven/maven-3/(建议3.6.3版本, 版本太高会报错)

参考黑马程序员的这个视频P51

ppfiGf1.png

验证: cmd中输入指令mvn -v

配置

idea项目内配置:

  1. 先创建一个空项目, 在项目结构中设置JDK的版本
  2. 设置的Build选项下的Build Tools选中maven, 设置Maven home path , User settings file , Local repository
  3. Maven选项下的Runner选择对应的JRE版本
  4. Compile选项下的Java Compile设置Project bytecode version字节码文件版本为当前JDK的版本

ppfAc11.png

ppfA6pR.png

ppfAg6x.png

idea全局配置

  1. 关闭项目, 选择Customize中的All settings
  2. 后续步骤与上面的项目内配置相同

创建

  1. 创建好的空项目中创建模块, 选择Maven, 点击Next
  2. 填写模块名称, 坐标信息, 点击finish, 创建完成
  3. 编写HelloWorld, 并运行

ppfVnZ8.png

ppfVudS.png

ppfVeqf.png

Maven坐标

介绍:

  • Maven中的坐标是资源的唯一标识, 通过该坐标可以唯一定位资源位置
  • 使用坐标来定义项目或引入项目中需要的依赖

主要组成:

  • groupId: 定义当前Maven项目隶属组织名称(通常是域名反写)
  • artifactId: 定义当前Maven项目名称(通常是模块名称, 例如order-service goods-service)
  • version: 定义当前项目版本号
<groupId>com.tyrant</groupId>
<artifactId>maven-project01</artifactId>
<version>1.0-SNAPSHOT</version>

导入

方式一: 打开IDEA, 选择右侧Maven面板, 点击 + 号, 选中对应项目的pom.xml文件, 点击即可导入

方式二: 打开IDEA, 在file中选择项目结构, 选择Moudles, 点击 + 号, 选中对应项目的pom.xml文件, 点击即可导入

依赖管理

依赖配置

依赖:

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

配置:

  1. 在pom.xml中编写<dependencies>标签
  2. 在<dependencies>标签中使用<dependency>引入坐标
  3. 定义坐标的groupId, artifactId, version
  4. 点击刷新按钮, 引入最新加入的坐标

注意:

  • 如果引入的依赖在本地仓库不存在, 将会连接远程仓库/中央仓库, 然后下载依赖
  • 如果不知道依赖的坐标信息, 可以到https://mvnrepository.com/
    <dependencies>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.10</version>
        </dependency>
    </dependencies>

依赖传递

依赖具有传递性

  • 直接依赖: 在当前项目中通过依赖配置建立的依赖关系

  • 间接依赖: 被依赖的资源如果依赖其他资源, 当前项目间接依赖其他资源

  • 排除依赖: 指主动断开依赖的资源, 被排除的依赖无需指定版本

            <!--排除依赖-->
            <exclusions>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                </exclusion>
            </exclusions>

依赖范围

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

作用范围:

  • 主程序范围有效(main文件夹范围内)
  • 测试程序范围有效(test文件夹范围内)
  • 是否参与打包运行(package指令范围内)
scope值 主程序 测试程序 打包(运行) 范例
compile(默认) Y Y Y log4j
test - Y - junit
provide Y Y - servlet-api
runtime - Y Y jdbc驱动

生命周期

Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一

Maven中有三套相互独立的生命周期:

  • clean: 清理工作
  • default: 核心工作, 如:编译, 测试, 打包, 安装, 部署等
  • site: 生成报告, 发布站点等

ppfJP2V.png

主要注意五个阶段:

  1. clean: 移除上一次构建生成的文件
  2. compile: 编译项目源代码
  3. test: 使用合适的单元测试框架运行测试(junit)
  4. package: 将编译后的文件打包, 如: jar, war等
  5. install: 安装项目到本地目录

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

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

  1. 在idea中, 右侧的maven工具栏, 选中对应的生命周期, 双击执行
  2. 在命令行中, 通过命令执行
posted on 2023-04-02 15:44  雪化凛然  阅读(31)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3