Maven全解析:Maven 进阶

ops/2025/2/4 10:30:05/

pom.xml 文件:

  1. 定义了项目的基本信息,用于描述项目如何构建,声明项目依赖

坐标:

  1. 构建的唯一标识
  2. 含义:
    1. groupId:组织标识。一般为:公司网址的反写 + 项目名
    2. artifactId:项目名称。一般为:项目名 - 模块
    3. version:版本号  形式为:0.0.1-SNAPSHOT
      1. 第一个 0 标识大版本号,第二 0 标识分支版本号,第三个 0 表示小版本号
        1. SNAPSHOT:快照版本
        2. ALPHA:内测版本
        3. BETA:公测版本
        4. RELEASE:稳定版本
        5. GA:正式发布版本
    4. packaging:打包的方式
      1. pom:只做依赖管理
      2. jar:Maven Java 项目,普通 Java 项目
      3. maven-plugin
      4. ejb
      5. war:JavaWeb 项目
    5. clissfier:用来帮助定义构建输出的一些负数构建

依赖:

  1. dependency:表示一个具体的依赖,可以是本地项目,也可以是第三方依赖
  2. 属性说明:
    1. 三维坐标:引用依赖包的三维坐标,用来定义依赖包
    2. scope:控制该依赖包在什么情况下会被加载到 classpath 中
  3. 依赖范围:<scope></scope>
    1. 主代码:main 下面的都是主代码在编译的时候的依赖
    2. 测试代码:test 下是测试代码编译的时候的依赖
    3. 运行时:main 代码在运行的时候对包的依赖
  4. scope:默认为 compile
    1. compile:编译依赖范围
    2. provided:对于编译与测试
    3. runtime:运行时
    4. test:测试依赖范围
    5. system
    6. import
  5. 依赖传递和可选依赖
    1. 传递依赖是会受到依赖范围的影响
    2. 阻断依赖:
    3. 可选依赖:
      1. 在依赖中明确的排除掉某一依赖,可以使用 exclusion 属性,排除掉引用的依赖

仓库:

  1. 类型:
    1. 本地
    2. 中央
    3. 远程:
      1. 阿里云
      2. 腾讯云
      3. 百度云
      4. maven 的中央仓库
  2. 本地仓库:
    1. 在第一次执行 maven 命令的时候才会被创建
    2. Maven 所需要的任何构建都是直接从本地仓库获取的。如果本地仓库没有,首先会从远程库下载构建至本地仓库,再使用本地仓库
  3. 中央仓库:
    1. 有 Maven 社区提供的仓库
    2. 简单的 Java 项目依赖的构建都可以在这里下载到
    3. 关键概念:
      1. 由 Maven 社区管理
      2. 不需要配置
      3. 需要通过网络才能访问
  4. 依赖搜索顺序:

声明周期:

  1. 三套互相独立的声明周期:
    1. Clean:清理项目
    2. Default:构建项目
    3. sit:建立项目站点

      生命周期

      clean

      default

      site

      阶段(phase),执行顺序由上至下

      pre-clean

      validate

      pre-site

      clean

      initialize

      site

      post-clean

      generate-sources

      post-site

       

      process-sources

      site-deploy

      generate-resources

       

      process-resources

      compile

      process-classes

      generate-test-sources

      process-test-sources

      generate-test-resources

      process-test-resources

      test-compile

      process-test-classes

      test

      prepare-package

      package

      pre-integration-test

      integration-test

      post-integration-test

      verify

      install

      deploy

Maven 继承和聚合:

  1. 意义:
    1. 避免重复,让项目更加安全
  2. 可继承的 POM 元素:
    1. groupId:项目组ID,项目坐标的核心元素
    2. version:项目版本,项目坐标的核心元素
    3. description:项目的描述信息
    4. organization:项目的组织信息
    5. inceptionYear:项目的创始年份
    6. url:项目的 url 地址
    7. develoers:项目的开发者信息
    8. contributors:项目的贡献者信息
    9. distributionManagement:项目的部署信息
    10. issueManagement:缺陷跟踪系统信息
    11. ciManagement:项目的持续集成信息
    12. scm:项目的版本控制信息
    13. mailingListerv:项目的邮件列表信息
    14. properties:自定义的 Maven 属性
    15. dependency:项目的依赖配置
    16. dependency  Management:项目依赖管理配置
    17. repositories:项目的仓库配置
    18. build:包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等
    19. reporting:包括项目的报告输出目录配置、插件配置、插件管理配置

Maven私服架构:

  1. 私服介绍:
    1. 正式开发,不同的项目组开发不同的工程。maven-dao 工程开发完毕,发布到私服 maven-service 从私服下载 dao
    2. 公司在自己的局域网内部搭建自己的远程仓库服务器,成为私服。
    3. 私服服务器既是公司内部的 maven 远程仓库,每个员工的电脑上安装 maven 软件并且连接私服服务器,员工将自己开发的项目打成 jar 包并发送到私服服务器,其他项目组从私服服务器下载所有依赖的构建(jar)
  2. 私服充当代理服务器,当私服上没有 jar 包会从互联中央仓库自动下载
  3. Nexus介绍:
    1. Nexus 是 Maven 仓库管理器,通过 nexus 可以搭建 maven 仓库,同时 nexus 还提供强大的仓库管理功能,构建搜索功能等。

http://www.ppmy.cn/ops/155544.html

相关文章

详解Redis之事务

目录 Redis事务 概念 特性 常用命令 MULTI EXEC DISCARD WATCH UNWATCH 使用演示 使用场景 注意事项 Redis事务 概念 Redis事务和MySQL的事务在概念上是类似的&#xff0c;都是把一系列操作绑定成一组&#xff0c;让这一组能够批量执行。但是&#xff0c;Redis事务…

CSS(快速入门)

欢迎大家来到我的博客~欢迎大家对我的博客提出指导&#xff0c;有错误的地方会改进的哦~点击这里了解更多内容 目录 一、什么是CSS?二、基本语法规范三、CSS选择器3.1 标签选择器3.2 id选择器3.3 class选择器3.4 通配符选择器3.5 复合选择器 四、常用CSS样式4.1 color4.2 font…

python 使用Whisper模型进行语音翻译

目录 一、Whisper 是什么? 二、Whisper 的基本命令行用法 三、代码实践 四、是否保留Token标记 五、翻译长度问题 六、性能分析 一、Whisper 是什么? Whisper 是由 OpenAI 开源的一个自动语音识别(Automatic Speech Recognition, ASR)系统。它的主要特点是: 多语言…

用HTML、CSS和JavaScript实现庆祝2025蛇年大吉(附源码)

用HTML、CSS和JavaScript庆祝2025蛇年大吉 在这个数字化时代&#xff0c;网页设计不仅仅是为了展示信息&#xff0c;更是传达情感和文化的一种方式。2025年将是蛇年&#xff0c;许多人希望通过各种方式庆祝这一重要的时刻。在这篇文章中&#xff0c;我们将一起学习如何使用HTM…

Bili23-Downloader 新春版,支持自动高音画质

视频下载器 链接&#xff1a;迅雷云盘 Bili23-Downloader是一款免费开源简洁清爽易用的B视频下载工具&#xff0c;整体基于python开发。其可支持下载UP主上传的单集和多集视频&#xff0c;包括相关封面、弹幕、字幕和音频流等刮削。另支持二维码、账号信息登录。 前阵子同类…

基于 AWS SageMaker 对 DeepSeek-R1-Distilled-Llama-8B 模型的精调与实践

在当今人工智能蓬勃发展的时代&#xff0c;语言模型的性能优化和定制化成为研究与应用的关键方向。本文聚焦于 AWS SageMaker 平台上对 DeepSeek-R1-Distilled-Llama-8B 模型的精调实践&#xff0c;详细探讨这一过程中的技术细节、操作步骤以及实践价值。 一、实验背景与目标 …

3.Spring-事务

一、隔离级别&#xff1a; 脏读&#xff1a; 一个事务访问到另外一个事务未提交的数据。 不可重复读&#xff1a; 事务内多次查询相同条件返回的结果不同。 幻读&#xff1a; 一个事务在前后两次查询同一个范围的时候&#xff0c;后一次查询看到了前一次查询没有看到的行。 二…

Redis篇 Redis如何清理过期的key以及对应的解决方法

Redis设置Key过期时间 在 Redis 中&#xff0c;可以通过特定的命令为 Key 设置过期时间&#xff0c;使得 Key 在一定时间后自动删除&#xff0c;这对于管理缓存、验证码等临时数据非常有用。 解决方法 1. Redis过期删除策略 1.1 如何实现过期策略 对一个 key 设置了过期时间…