微服务核心01-Maven【项目管理工具】基础

一、Maven 简介

1.1 传统项目管理:

1.2 Maven 的作用

  • 项目构建:提供标准的、跨平台的自动化项目构建方式。
  • 依赖管理:管理项目依赖的资源(jar 包),避免资源间的版本冲突问题
  • 统一开发结构:提供标准的、统一的项目结构

1.3 下载与安装

Maven官网:http://maven.apache.org/

Maven 下载地址:http://maven.apache.org/download.cgi

Maven下载的位置:E:\SoftWare\programmer\maven

1.4 Maven 中文件的介绍

bin:Maven 核心运行文件

boot:类加载器

conf:核心配置

lib:Maven 依赖的 jar 包

Maven 属于绿色版软件,解压即安装。

1.5 Maven 环境变量配置:

  • 依赖 Java,需要配置 JAVA_HOME
  • 设置 MAVEN 自身的运行环境,需要配置  


二、Maven 基础概念(重点)

2.1 仓库:用于存储资源,包含各种 jar 包

中央仓库

私服仓库

本地仓库

2.2 坐标:(查找资源的定位方式)

https://mvnrepository.com

坐标的组成:组成ID、项目ID、版本号

2.3 本地仓库配置:

1、Maven 仓库默认存储位置:

2、自己配置的 Maven 本地仓库位置:

2.4 远程仓库配置:

1、镜像仓库配置:

2.5 全局 setting 与 用户 setting 区别

  • 全局setting 定义了当前计算器中 Maven 的公共配置
  • 用户 setting 定义了当前用户的配置

三、第一个Maven 项目(手工制作)(⭐)
Maven 主要是做构建的

3.1 Maven 工程目录结构

3.2 Maven 构建命令

3.3 插件创建工程

使用模板生成(直接在命令行输入下面的命令)

四、第一个 Maven 项目(IDEA)(重点)

4.1 配置 Maven

4.2 手工创建 Java 项目 

 

 

4.3 原型创建 Java 项目

4.4 原型创建 Web 项目

4.5 插件

web 工程的启动,需要 tomcat 插件

tomcat7 插件的安装,主要作用是运行 web 项目

pom.xml 文件案例: 

<?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/maven-v4_0_0.xsd">
<!--  指定pom的模型版本  -->
  <modelVersion>4.0.0</modelVersion>
<!--  打包方式,web工程打包为war,java工程打包为jar  -->
  <packaging>war</packaging>

<!--  组织id,公司域名反写-->
  <groupId>com.itheima</groupId>
<!--    项目id-->
  <artifactId>web01</artifactId>
<!--    版本号:release(完成版),snapshot(开发版)-->
  <version>1.0-SNAPSHOT</version>

<!--设置当前工程的所有依赖-->
  <dependencies>
<!--      具体的依赖-->
      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.12</version>
      </dependency>
  </dependencies>

  <!--构建 -->
  <build>
    <!--设置插件-->
    <plugins>
      <!--具体的插件配置-->
      <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.1</version>
          <!--配置-->
          <configuration>
            <!--端口-->
            <port>80</port>
            <!--路径-->
            <path>/</path>
          </configuration>
      </plugin>
    </plugins>
  </build>

</project>

五、依赖管理(重点)

5.1 依赖配置

依赖指当前项目运行所需的 jar,一个项目可以设置多个依赖

格式:

4.2 依赖传递

1、依赖传递中的冲突问题:

4.3 可选依赖

可选依赖:对外隐藏当前所依赖的资源(对外不透明)

控制这个资源不被别人看到。

4.4 排除依赖

排除依赖:主动断开依赖的资源(不需要这些依赖的资源)(被排除的资源无需指定版本)

不需要这个依赖,将它排除

5.5 依赖范围

  • 依赖的 jar 默认情况可以在任何地方使用,可以通过 scope 标签设定其作用范围
  • 作用范围
    • 主程序范围有效(main 文件夹范围内)
    • 测试程序范围有效(test 文件夹范围内)
    • 是否参与打包(package 指令范围内)

1、依赖范围的传递性

  • 带有依赖范围的资源在进行传递时,作用范围将受到影响。

六、生命周期与插件

6.1 项目构建生命周期

  • Maven 构建生命周期描述的是一次构建过程经历了多少个事件

1、Maven 对项目构建的生命周期划分为 3 套:

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

2、clean 生命周期

  • pre-clean:执行一些需要在 clean 之前完成的工作
  • clean :移除所有上一次构建生成的文件
  • post-clean :执行一些需要在 clean 之后立刻完成的工作

3、default 构建生命周期

4、site 构建生命周期

  • pre-site : 执行一些需要在生成站点文档之前完成的工作
  • site : 生成项目的站点文档
  • post-site :执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
  • site-deploy :将生成的站点文档部署到特定的服务器上

6.2 插件

  • 插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能
  • 默认 maven 在各个生命周期上绑定有预设的功能
  • 通过插件可以自定义其他功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/620099.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

夜莺监控(Nightingale)上线内置指标功能

Prometheus 生态里如果要查询数据&#xff0c;需要编写 promql&#xff0c;对于普通用户来说&#xff0c;门槛有点高。通常有两种解法&#xff0c;一个是通过 AI 的手段做翻译&#xff0c;你用大白话跟 AI 提出你的诉求&#xff0c;让 AI 帮你写 promql&#xff0c;另一种是平台…

智慧油田三维电子沙盘系统

深圳易图讯科技(www.3dgis.top)智慧油田三维电子沙盘系统采用三维GIS、大数据、云计算、虚拟现实、物联网、AI等前沿技术&#xff0c;支持无人机航拍、高清卫星影像、DEM高程数据、矢量数据、无人机倾斜摄像、BIM模型、点云、城市白模、等高线、标高点等数据融合和切换&#xf…

如何查看MySQL binlog日志

1、查看MySQL是否开启binlog日志 SQL&#xff1a;show variables like ‘%log_bin%’; log_bin:on 是开启状态 若是OFF&#xff0c;则需要开启binlog日志。 开启方式&#xff1a;打开mysql配置文件my.cnf&#xff0c;在[mysqlId]下面增加 log-binmysql-bin 查看binlog日志 …

每日OJ题_贪心算法四⑥_力扣1262. 可被三整除的最大和

目录 力扣1262. 可被三整除的最大和 解析代码 力扣1262. 可被三整除的最大和 1262. 可被三整除的最大和 难度 中等 给你一个整数数组 nums&#xff0c;请你找出并返回能被三整除的元素最大和。 示例 1&#xff1a; 输入&#xff1a;nums [3,6,5,1,8] 输出&#xff1a;1…

Section I:Introduction

想学习的私信&#xff0c;免费学习路线 原文 Section I&#xff1a;Introduction 1.1 Your First Java Program The classic first program when introducing any new language is Hello World, or a program that prints to the console. In Java, Hello World can be writ…

AI地名故事:笔岗村

笔岗村&#xff0c;实际上是由笔村和宏岗村两个古老的村落合并而成的。南宋度宗元年&#xff0c;也就是公元1265年&#xff0c;笔村开始建立。随着时间的推移&#xff0c;到了宋代后期&#xff0c;宏岗村也相继建立。这两个村落各自承载着丰富的历史和文化&#xff0c;最终在历…

浅析安全用电监控系统在工厂的研究与应用论述

摘 要&#xff1a;随着社会时代的发展&#xff0c;人们的安全意识越来越强烈&#xff0c;在人们生活和工作中离不开各种用电设备&#xff0c;用电设备的安全使用是保障人们生命安全的重要内容。工厂因自身厂内工作环境的特殊性&#xff0c;用电设备的种类多且复杂&#xff0c;如…

云仓酒庄携手中视中州国际传媒 开启央视广告战略合作新征程

近日&#xff0c;云仓酒庄与中视中州&#xff08;央视代理机构&#xff09;隆重举行2024-2025年度央视广告战略签约仪式&#xff0c;云仓酒庄副总裁周玄代表云仓酒庄签约。此次合作标志着云仓酒庄在品牌传播和市场营销方面迈出了坚实的一步&#xff0c;将借助央视及多家卫视的强…

星戈瑞SH-PEG3-OH一种多功能生物相容性PEG小分子

SH-PEG3-OH是一种含有硫基&#xff08;-SH&#xff09;、三个乙二醇单元和羟基&#xff08;-OH&#xff09;的小分子化合物。其分子结构中的硫基赋予了其独特的化学反应性&#xff0c;能够与其他含有不饱和键的化合物发生点击化学反应&#xff0c;如迈克尔加成反应等。同时&…

iOS 面试题总结(可能是最全的!!!)

如有错误 请及时在评论中指出 文章将不定期更新 1. objc_msgForward是干什么的&#xff0c;如果直接调用会发生什么&#xff1f; 作用&#xff1a;这个函数是IMP类型&#xff08;方法实现的内存地址也就是函数指针&#xff09;&#xff0c;用于消息转发&#xff0c;当向一个对…

iframe的替代方案有吗?做页面嵌套界面套娃

UIOTOS可以了解下&#xff0c;uiotos.net&#xff0c;通过连线来代替脚本逻辑开发&#xff0c;复杂的交互界面&#xff0c;通过页面嵌套轻松解决&#xff0c;是个很新颖的思路&#xff0c;前端零代码&#xff01; 蓝图连线尤其是独创的页面嵌套和属性继承技术&#xff0c;好家…

【Pychart】jupyter中pyecharts无法显示问题无法使用/No module named pyecharts

无法显示或No module&#xff0c;一般就是更换python版本后&#xff0c;没有在新的python里安装jupyter&#xff1b;另外原因就是引用方式问题&#xff0c;就是import方式不对&#xff1b;都解决后&#xff0c;有报错没有add&#xff0c;或者str问题。 最后的解决方案竟然是bin…

LVDS 源同步接口

传统数据传输通常采用系统同步传输方式&#xff0c;多个器件基于同一时钟源进行系统同步&#xff0c;器件之间的数据传输时序关系以系统时钟为参考&#xff0c;如图1所示。系统同步传输方式使各器件处于同步工作模式&#xff0c;但器件之间传输数据的传输时延难以确定&#xff…

【代码实践】starRocks 窗口函数(udf)实践

背景说明 实现天粒度的同比计算重点说明 要求数据是连续的因为天粒度的同比&#xff0c;需要365天&#xff0c;但为了方便测试&#xff0c;当前的判断逻辑是计算5天的前&#xff0c;而不是365天前的 参考文档 https://docs.starrocks.io/zh/docs/sql-reference/sql-functio…

流量卡避坑指南

流量卡避坑指南 在选择流量卡时&#xff0c;有几点需要注意以避免踩坑&#xff1a; 合同期和优惠期。 务必看清楚流量卡的合同期和优惠期。 有些卡可能首月免费&#xff0c;但月底办理可能不划算。 真正的长期套餐应该是优惠期20年以上的。 宣传与实际。 对于所谓的“永久9元…

C#图像处理实例1:opencvsharp获取轮廓凸包

在OpenCvSharp中&#xff0c;你可以使用Cv2.ApproxPolyDP函数来获取轮廓的凸包。这个函数使用Douglas-Peucker算法来近似轮廓。 以下是一个简单的例子&#xff0c;展示如何使用OpenCvSharp获取轮廓的凸包&#xff1a; Mat src Cv2.ImRead("保存图像\2.jpg", ImreadM…

实验名称:TCP 连接管理

目录 实验目的&#xff1a; 实验原理&#xff1a; 实验步骤&#xff1a; 1) 启动WireShark&#xff0c;设置抓包状态 2) 访问指定服务器 &#xff0c;通过Wireshark抓取通信数据报文 3) 分析TCP连接建立的三次握手和连接释放的四次握手过程 原始数据记录&#xff1a; 实…

https介绍,加密解密(举例+必要性,对称/非对称加密介绍),数字摘要/指纹(介绍,应用(session id,网盘的秒传功能))

目录 https 引入 介绍 加密解密层 介绍 没有绝对的安全 使用ssl的弊端 加密解密 概念 加密 解密 秘钥 举例 现实中 网络中 加密的必要性 常见加密方式 对称加密 特点 非对称加密 特点 数字摘要/指纹 介绍 应用 session id 百度网盘的秒传功能 https …

【数据结构课程学习】:队列学习

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;数据结构课程学习 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 &#x1f697; 1.队列的基本概念&#xff1a…

xCode升级后: Library ‘iconv2.4.0’ not found

报错信息&#xff1a; targets 选中 xxxNotification: Build Phases ——> Link Binary With Libraries 中&#xff0c;移除 libiconv.2.4.0.tbd libiconv.2.4.0.dylib 这两个库&#xff08;只有一个的移除一个就好&#xff09;。 然后重新添加 libiconv.tbd 修改完…