微服务核心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 在各个生命周期上绑定有预设的功能
  • 通过插件可以自定义其他功能

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web LLM 攻击实验:利用 LLM API 实现 SQL 注入

前言 Web LLM 攻击 各组织都在急于集成大型语言模型 (LLM)&#xff0c;以改善其在线客户体验。这使他们面临 Web LLM 攻击&#xff0c;这些攻击利用模型对攻击者无法直接访问的数据、API 或用户信息的访问权限。例如&#xff0c;攻击可能&#xff1a; 检索 LLM 有权访问的数…

【valse 2024】会议内容汇总(持续更新)

系列文章目录 提示&#xff1a;更新中&#xff0c;一周左右更新完毕。需要具体课件的可私信 文章目录 系列文章目录开幕式主旨报告-1:大模型时代的机遇和挑战主旨报告-2:以深度学习框架为牵引促进自主 AI生态发展主旨报告-3:从洞穴的影子到智能的光辉--连接和交互方式的改变塑造…

别出心裁的自动化网页数据采集:Chrome插件和mitmproxy

别出心裁的自动化网页数据采集&#xff1a;Chrome插件和mitmproxy 前言 在信息时代&#xff0c;数据已成为决策的关键。传统的数据采集方法往往依赖于手动操作或简单的自动化脚本&#xff0c;这限制了数据的时效性和精确性。为了克服这些限制&#xff0c;本文介绍了一种结合C…

文件批量移动:按路径名称指引,高效文件管理与批量归类实战

在数字化时代&#xff0c;文件批量移动成为了一项至关重要的技能&#xff0c;它能够帮助我们高效地管理和归类大量的文件。通过按路径名称指引进行文件批量移动&#xff0c;我们可以使文件组织更加有序&#xff0c;提高文件检索的速度&#xff0c;从而提升工作效率。 一、明确路…

多线程学习Day09

10.Tomcat线程池 LimitLatch 用来限流&#xff0c;可以控制最大连接个数&#xff0c;类似 J.U.C 中的 Semaphore 后面再讲 Acceptor 只负责【接收新的 socket 连接】 Poller 只负责监听 socket channel 是否有【可读的 I/O 事件】 一旦可读&#xff0c;封装一个任务对象&#x…

【建议收藏】CSP-J/S信奥赛,小白报名教程!

✅ 信奥介绍 信息学奥赛是五大学科&#xff08;数学、物理、化学、生物、信息学&#xff09;奥林匹克竞赛中唯一一个可以贯穿小学、初中、高中的特长生项目。由中国计算机学会主办&#xff0c;主要考察信息学&#xff0c;即编程的相关知识和能力。 ✅ 报名流程 &#x1f449;登…

智能绘画系统源码系统 后台自由设置会员套餐 带网站的安装包以及安装部署教程

在当今数字化与智能化快速发展的时代&#xff0c;艺术与技术正以前所未有的速度相互融合。为了满足广大绘画爱好者和专业艺术家的需求&#xff0c;我们精心打造了一款智能绘画系统源码系统。该系统不仅具备高度的智能化特性&#xff0c;还提供了丰富的后台管理功能&#xff0c;…

CTF-密码学基础

概述 密码学(Cryptolopy)&#xff1a;是研究信息系统安全保密的科学 密码学研究的两个方向&#xff1a; 密码编码学(Cryptography)&#xff1a;主要研究对信息进行编码&#xff0c;实现对信息的隐蔽密码分析学(Cryptanalytics)&#xff1a;主要研究加密信息的破译或消息的伪造…

多客陪玩系统源码APP小程序H5陪玩开发伴游源码游戏陪玩平台源码陪玩平台开发约单源码线下陪玩接单平台app小程序H5源码游戏陪玩app小程序H5开发

出售成品陪玩app小程序H5源码&#xff0c;免费搭建部署和售后服务&#xff0c;并提供源码二开、定制开发等相关服务。 一、陪玩app源码的功能介绍 1、语音聊天: 陪玩app小程序H5源码用户随时创建语音聊天室&#xff0c;实现多用户上麦功能&#xff0c;提高互动聊天体验。 2、游…

【Qt 开发基础体系】字符串类应用和常用的数据类型

文章目录 1. Qt 字符串类应用1.1 操作字符串1.2 QString::append()函数1.3 QString::sprintf()函数1.4 QString::arg()函数 2. 查询字符串2.1 函数 QString::startsWith()2.2 函数 QString::contains()2.3 函数 QString::toInt()2.4 函数 QString::compare()2.5 将 QString 转换…

攻克《模版进阶》 全方位了解

目录 前言&#xff1a; 非类型模板参数 按需实例化 模板的特化 概念&#xff1a; 函数模板特化&#xff1a; 类模板特化&#xff1a; 1、全特化 2、偏特化 3、类模板特化应用示例 模板分离编译 什么是分离编译 模板的分离编译 解决方法 总结 前言&#xff1a; 我…

PostgreSQL和openGauss优化器对一个关联查询的SQL优化改写

PostgreSQL和openGauss数据库优化器在merge join关联查询的SQL优化改写 PostgreSQL 查询计划openGauss 查询计划拓展对比 看腻了文章就来听听视频讲解吧&#xff1a;https://www.bilibili.com/video/BV1oH4y137P7/ 数据库类型数据库版本PostgreSQL16.2openGauss6.0 创建测试表…

Python语言基础与由来介绍【自我维护版】

各位大佬好 &#xff0c;这里是阿川的博客 &#xff0c; 祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 本篇博客是在已有的博客的基础上进行的维护。 主要…

知识付费系统怎么搭建_轻松拥有知识付费平台

在信息爆炸的时代&#xff0c;知识的获取已不再局限于传统的课堂和书籍。随着科技的进步和互联网的普及&#xff0c;我们迎来了一个全新的知识获取方式——知识付费。今天&#xff0c;就让我们一起探讨如何搭建一个专属于您的知识付费系统&#xff0c;开启智慧的大门&#xff0…

常见C语言基础说明二:位运算问题

一. 简介 前面一篇文章学习了 常见的 C语言基础题&#xff0c;文章如下&#xff1a; 常见C语言基础题说明一-CSDN博客 本文继续上一篇C语言基础题的学习。 二. C语言中 -> 位运算问题 1. 数据在计算机中的存储方式 当前的计算机系统使用的基本上是二进制系统&#…

楼宇自控远程I/O革新BACnet/IP模块在暖通空调系统

在现代智能建筑的浪潮中&#xff0c;BACnet/IP分布式远程I/O控制器正逐步成为暖通空调&#xff08;HAVC&#xff09;系统升级转型的得力助手。本文将以某大型商业综合体为例&#xff0c;揭示BACnet/IP I/O模块如何在复杂多变的环境中发挥其独特优势&#xff0c;实现HVAC系统的智…

libcity笔记:添加新模型(以RNN.py为例)

创建的新模型应该继承AbstractModel或AbstractTrafficStateModel 交通状态预测任务——>继承 AbstractTrafficStateModel类轨迹位置预测任务——>继承AbstractModel类 1 AbstractTrafficStateModel 2 RNN 2.1 构造函数 2.2 predict 2.3 calculate_loss

互联网洗鞋工厂实现新时代下的家庭洗护服务;

互联网洗鞋工厂实现新时代下的家庭洗护服务; 拽牛科技洗护系统以智慧城市系统为依托&#xff0c;洗鞋工厂为中心&#xff0c;利用互联网&#xff0b;社区服务商模式&#xff0c;实现了新时代下的家庭洗护服务&#xff0c; 将客户&#xfe63;&#xfe63;社区服务商&#xfe63…

基于Spring Boot框架实现大学生选课管理系统

文章目录 源代码下载地址项目介绍项目功能界面预览 项目备注源代码下载地址 源代码下载地址 点击这里下载源码 项目介绍 项目功能 教务处管理 开课、开班审批&#xff0c;排课处理&#xff0c;班级操作&#xff0c;选课时间段管理** 使用了sql解决了开课开班的时间段的冲突…

水电抄表方案是什么?

1.概述&#xff1a;水电抄表方案的重要性 水电抄表方案是现代城市管理中不可或缺的一部分&#xff0c;它涉及到了能源管理、费用结算和公共服务等多个领域。传统的抄表方式需要工作人员上门服务&#xff0c;费时费力且效率低下。随着科技的发展&#xff0c;智能化的水电抄表方…