Maven&Springboot知识点

【Claude Code · VibeCoding】07|环境:JDK / Maven / Python / uv 补齐 JDK、Maven、Python、uv。按课件截图顺序跟做,装完在终端验证版本。 阅读详情

前置
在Windows条件下启动nginx
开启nginx 从nginx路径下输入nginx.exe
关闭nginx 重新启动窗口输入nginx -s stop
重新加载nginx 启动窗口输入 nginx -s reload
检查nginx的配置文件语法格式是否正确,nginx -t
nginx的端口上80
80端口走的是http协议,80端口在浏览器上访问可以省略的。
nginx是静态资源服务器,静态资源:不走数据库的就是静态资源

Maven

初识Maven

统一了一个标准,后边所有的项目都是按照一个模型出来的。使用起来不会出现太多的额外状况。
基于java来实现的一个管理和控制项目的软件
Maven的作用:

  • 依赖管理 :jar包就找Manven要。
  • 提供了统一的项目结构。
  • 一键构建。参与从源码到发布的各个过程。

Maven可以理解为管家,我们只需要提要求,maven帮我们去实现。
项目对象模型:POM 通过一小段描述信息来管理项目的构建、报告和文档。

创建包名?

公司域名:www.qq.com/www.baidu.com
域名反写:com.qq /com.baidu
项目名称:springboot_quickstart
com.qq.bootdemo
子包 :
com.qq.bootdemo

     - web
     - service
     - mapper

Maven概概述

Maven模型仓库

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

仓库的本质就是一个目录(文件夹),这个目录就被用来存储开发中所有依赖和插件

Maven和jar包的关系:
我们开发者问maven要jar包,对于maven来说需要给我们提供jar包。已经有的可以直接提供,不存在的jar包maven会去中央仓库找,
**中央仓库是什么意思呢?**由Maven团队维护的全球唯一的,中央仓库是阿帕奇进行维护jar包的仓库,中央仓库在国外,下载速度很慢 中央仓库的地址是https://repo1.maven.org/maven2/
maven的下载流程:maven先去本地仓库找,本地仓库没有就去私服查找,私服没有就去中央仓库进行查找,如果有就直接下载,如果中央仓库不存在jar包就没有办法了
**什么叫本地仓库?**我们自己从网上git下来的就是本地仓库。
私服:一般由公司团队搭建的私有仓库

Maven模型

  • 项目对象模型
  • 依赖管理模型 --依赖管理
  • 构建生命周期/阶段 --一键构建 maven是可以参与项目从源码阶段到发布阶段的整个过程‘管家’/maven通过一个个的插件来帮助我们实现对应的功能

功能介绍
1、构建生命周期阶段(Build lifecycle & phases)
2、项目对象模型
3、依赖管理模型(Dependency)
在pom中配置depedencies,需要什么jar包就添加进去。

一组标签用来藐视一个唯一的jar包,一组
这么一个标签可以成为坐标也称之为依赖。

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope><!--scope是作用范围-->,
						<!--默认的是Complie一直有效 
						test单元测试有效 
						provided在写代码期间有效,运行的时候就没了 -->


        </dependency>
    </dependencies>


所谓唯一:
	groupId==》组织名/公司名
	artifactId==》产品
	version==》定义唯一的版本号
看到点就是目录,就要再往下找。

Maven项目管理

pom配置详解

POM (Project Object Model) :指的是项目对象模型,用来描述当前的maven项目。

  • 使用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/xsd/maven-4.0.0.xsd">
  <!-- POM模型版本 -->
  <modelVersion>4.0.0</modelVersion>

  <!-- 当前项目坐标 -->
  <groupId>com.itheima</groupId>
  <artifactId>maven_project1</artifactId>
  <version>1.0-SNAPSHOT</version>

  <!-- 打包方式 -->
  <packaging>jar</packaging>

</project>

pom文件详解:

  • :pom文件的根标签,表示当前maven项目
  • :声明项目描述遵循哪一个POM模型版本
    • 虽然模型本身的版本很少改变,但它仍然是必不可少的。目前POM模型版本是4.0.0
  • 坐标 :、、
    • 定位项目在本地仓库中的位置,由以上三个标签组成一个坐标
  • :maven项目的打包方式,通常设置为jar或war(默认值:jar)

Maven坐标详解

什么是坐标?

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

Maven坐标主要组成

  • groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.itheima) 一般是公司域名的反写
  • artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service) 产品名称
  • version:定义当前项目版本号

如下图就是使用坐标表示一个项目:

    <groupId>com.itheima</groupId>
    <artifactId>maven_demo</artifactId>
    <version>1.0-SNAPSHOT</version>

注意:

  • 上面所说的资源可以是插件、依赖、当前项目。
  • 我们的项目如果被其他的项目依赖时,也是需要坐标来引入的。

properties作用:
1、定义共有的属性。可以理解为临时的变量
2、约定程序的版本信息

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

依赖管理

依赖配置

依赖:指当前项目运行所需要的jar包。一个项目中可以引入多个依赖:
例如:在当前工程中,我们需要用到logback来记录日志,此时就可以在maven工程的pom.xml文件中,引入logback的依赖。具体步骤如下:

  1. 在pom.xml中编写标签
  2. 在标签中使用引入坐标
  3. 定义坐标的 groupId、artifactId、version

注意顺序不要乱顺序
如果引入的依赖,在本地仓库中不存在,将会连接远程仓库 / 中央仓库,然后下载依赖(这个过程会比较耗时,耐心等待)

<dependencies>
    <!-- 第1个依赖 : logback -->
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.11</version>
    </dependency>
    <!-- 第2个依赖 : junit -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
</dependencies>

依赖传递

依赖具有传递性

早期我们没有使用maven时,向项目中添加依赖的jar包,需要把所有的jar包都复制到项目工程下。如下图所示,需要logback-classic时,由于logback-classic又依赖了logback-core和slf4j,所以必须把这3个jar包全部复制到项目工程下
快捷键:ctrl+alt+空格 可以把信息补全出来

依赖传递可以分为:

  1. 直接依赖:在当前项目中通过依赖配置建立的依赖关系
  2. 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

image-20220616115445812.png
依赖传递:
a
b
c
a和b 直接依赖
a和c 简介依赖

排除依赖

什么是排除依赖?

  • 排除依赖:指主动断开依赖的资源。(被排除的资源无需指定版本)
<dependency>
    <groupId>com.itheima</groupId>
    <artifactId>maven-projectB</artifactId>
    <version>1.0-SNAPSHOT</version>
   
    <!--排除依赖, 主动断开依赖的资源-->
    <exclusions>
    	<exclusion>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </exclusion>
    </exclusions>
</dependency>

排除依赖:
a
b
c
a不知道c的存在要在b中配置

<dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.11</version>
 					 <exclusions>
    					<exclusion>
           		 <groupId>junit</groupId>
           		 <artifactId>junit</artifactId>
        		</exclusion>
    </exclusions>
</dependency>

依赖范围

image-20220616123806894.png
依赖的作用范围

  1. 主程序范围有效(main文件夹范围内)
  2. 测试程序范围有效(test文件夹范围内)
  3. 是否参与打包运行(package指令范围内)
  <!--给当前的项目设置junit    -->
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope><!--作用范围,默认的是Complie-->
            <!--程序  依赖a =》为了写代码不报错,程序打包的时候也没有a的代码
            写代码 是编译=》检查语法有没有错误
            程序.jar =>里边都是可以执行的代码  程序没有a

            服务器上有a,
            provided只有两个jar包和他有关系
                一个是servlet
                另外一个是jsp。

            -->

        </dependency>
    </dependencies>

compile 一直存在

test 测试中存在

provided 写代码能导报,运行的时候不存在(别人已经提供了!!!)

生命周期

三套生命周期

clean 清理(删除trget目录) 常用
mvn clean 删除target
default 默认(项目从源码阶段到部署阶段) 常用
mvn compile 编译代码,生成target
mvn test 先执行compile 生成target,直接单元测试
mvn package 先执行compile 然后执行test,最后将代码打包(jar/war/pom:父子工程)
mvn install 先执行compile,然后执行test,在执行package,最后把jar包安装到本地仓库
site 站点 没用

生命周期的对应命令是按照先后顺序走的,中途断了不会继续往后运行了!!!

Springboot入门

boot模板:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.3</version>
    <relativePath/>
</parent>

<properties>
    <java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.20</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.7.3</version>
        </plugin>
    </plugins>
</build>

快速入门

简介:spring makes java simp
https://spring.io
springboot是基于springFramework。
优点:

  1. 简化配置
  2. 快速开发

spring boot 可以帮助我们非常快速地构建应用程序、简化开发、提高效率
javaweb本质:通过浏览器访问去执行特定的java代码
class能够玩的是反射,以后看到xxx.class

  1. cv坐标
  2. 编写项目启动类
    1. _/项目启动类/
      _@SpringBootApplication
      public class BootDemoApplication {
      public static void main(String[] args) {
      SpringApplication.run(BootDemoApplication.class,args);
      }
      }
  3. 页面功能类
    1. _/页面功能类/
      _@RestController
      public class HelloController {
      @RequestMapping(“/hello”)
      public String hello(){
      return “hello 王佳伟”;
      }
      }

开发步骤

web分析

HTTP协议

介绍

本质是通过一个路径敲回车能到java后台中的路径中并执行java代码
web是基于http1.0和http1.1的版本
HTTP:Hyper Text Transfer Protocol(超文本传输协议),规定了浏览器与服务器之间数据传输的规则。

  • http是互联网上应用最为广泛的一种网络协议
  • http协议要求:浏览器在向服务器发送请求数据时,或是服务器在向浏览器发送响应数据时,都必须按照固定的格式进行数据传输

结论:一来一回,一来指的是访问服务器,一回值得是回应浏览器

特点:

3次握手/4次挥手==>面试的标准

  • 基于TCP协议:面向连接,安全
  • 基于请求-响应模型

http协议本身是无状态的,每次请求都是独立的,如果要数据共享的话,http是做不到的,需要配合后台通过会话技术来实现的。

协议概述

请求协议

先有请求再有访问

GET :get没有请求体
POST:存在请求体,写的的任何参数都是在请求体中。
PUT
DELETE
OPTIONS:问询请求,前端处理

请求格式:

请求格式: 分为四部分
请求行:
GET /hello HTTP/1.1
、 使用空格进行区分的
GET 是请求方式,/hello是访问路径,HTTP/1.1 是/请求协议/版本号
请求头:
请求头是以Key:value 形式体现的
记住:content-type:表示数据通过那种格式传递到后台
请求空行
请求体

响应协议

格式介绍
回应格式

回应格式: 分为四部分
回应行:
HTTP/1.1 200
协议/ 200是状态码:
回应头:
Content-Type: text/html;charset=UTF-8
Content-Type:指的后台通过那种格式返回给浏览器
回应空行
回应体:上边响应看到

HTTP/1.1 200
Content-Type: text/html;charset=UTF-8
Content-Length: 10
Date: Sun, 16 Jul 2023 02:08:06 GMT
Keep-Alive: timeout=60
Connection: keep-alive
响应状态码

200表示成功
302表示重定向
304表示本地缓存(仅限于get请求)
400表示坏的请求(boot框架,如果参数对不上会出现这个问题)参数错了
404表示路径写错了
405表示方式没有被允许
500表示代码写错了

WEB服务器-Tomcat

介绍

服务器指的是硬件和软件
特点:免费 开源

Web服务器
Tomcat

Tomcat服务器软件是一个免费的开源的web应用服务器。是Apache软件基金会的一个核心项目。由Apache,Sun和其他一些公司及个人共同开发而成。
由于Tomcat只支持Servlet/JSP少量JavaEE规范,所以是一个开源免费的轻量级Web服务器。

JavaEE规范: JavaEE => Java Enterprise Edition(Java企业版)
avaEE规范就是指Java企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF
jsp几乎淘汰掉了,每次运行都要编译,很麻烦

因为Tomcat支持Servlet/JSP规范,所以Tomcat也被称为Web容器、Servlet容器。JavaWeb程序需要依赖Tomcat才能运行。
Tomcat的官网: https://tomcat.apache.org/

基本使用

解压之后使用startup.bak运行

入门程序解析

与上次手动创建最终效果一致

起步依赖

spring-boot-starter-web和spring-boot-starter-test,在SpringBoot中又称为:起步依赖
而在SpringBoot的项目中,有很多的起步依赖,他们有一个共同的特征:就是以spring-boot-starter-作为开头。在以后大家遇到spring-boot-starter-xxx这类的依赖,都为起步依赖。
起步依赖有什么特殊之处呢,这里我们以入门案例中引入的起步依赖做为讲解:

  • spring-boot-starter-web:包含了web应用开发所需要的常见依赖
  • spring-boot-starter-test:包含了单元测试所需要的常见依赖

spring-boot-starter-web内部把关于Web开发所有的依赖都已经导入并且指定了版本,只需引入 spring-boot-starter-web 依赖就可以实现Web开发的需要的功能
image-20221202204013113.png

SpringBoot父工程

在我们之前开发的SpringBoot入门案例中,我们通过maven引入的依赖,是没有指定具体的依赖版本号的。

已经整合了很多的左边,用什么就配置什么,剩下的局势SpringBoot给你搞定
要啥找boot要,要来直接使用。

从JX-2R-01热敏打印机芯到稳定打印:硬件设计与时序控制的实践指南 本文详细解析了JX-2R-01热敏打印机芯的硬件设计与驱动开发全流程。核心内容包括:实现严格的双电源上电时序控制、采用PWM恒流驱动步进电机确保走纸平稳,以及精确控制SPI数据加载与加热脉冲时序以获得清晰打印效果。文章提供了从电路设计、芯片选型到代码调试的实战指南,旨在帮助开发者构建稳定可靠的热敏打印模块。 阅读详情

相关推荐

02.Palantir Foundry平台功能和应用全景图

本文深入解析 Palantir Foundry 平台核心功能与应用全景。

684

maven&springboot项目启动流程一:初始化

启动流程 1.运行主启动类 对项目进行编译、测试 ---- 此时会执行到mven的test生命周期 a. 导入maven依赖jar包 b.加载build配置和profile配置 build 0).设置编译后文件的存放位置 下面展示一些 内联代码片。 <outputDirectory>${basedir}/target/aaa</outputDirectory> 1). finalName -->设置打成jar包的名字 <finalName>${project

qq_42040741的博客 2470

zds1104示波器使用指南

(2)将探头连接到探头补偿端,按下auto setup按键,一键捕获。(3)连接需要测量信号,开始查看波形。操作说明书,可以自行查看操作说明书。

m0_61973119的博客 6765

maven&springboot配置不同profile环境

每个子项目配置 application-dev.ym application-test.yml application-uat.yml application-prod.yml 在每个子项目的pom.xml这样的配置, <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifact..

dayformyjob 551

基于PyTorch的BP神经网络PID控制器动态调参实战

本文详细介绍了基于PyTorch的BP神经网络PID控制器动态调参实战,结合BP神经网络的自适应能力和PID控制算法的经典优势,实现工业控制中的高效参数调整。通过PyTorch实现BP-PID融合架构,包括网络设计、损失函数优化及动态调参技巧,显著提升控制性能,适用于温度控制、电机控制等场景。

weixin_29094775的博客 520

QTableView为例:Qt模型视图委托(MVD)(Model-View-Delegate)

QT中的MVD(模型-视图-委托)模式是一种类似于MVC的设计模式,将数据、界面和交互逻辑分离。模型负责数据管理,视图负责显示界面,而委托则嵌入在视图中处理数据的显示和编辑。QT提供了多种视图组件(如QListView、QTreeView、QTableView)和模型类(如QStandardItemModel、QAbstractItemModel),支持数据的多样化呈现。委托(Delegate)通过定制显示和编辑行为增强了视图的灵活性。该模式适用于各类数据结构展示(列表、表格、树形),能够高效处理数据与界面

菜一头包的博客 1988

Java工具篇之Maven:从pom.xml到测试通过的JAR

用一个可运行Java项目讲清Maven的POM、坐标、依赖、生命周期与插件。通过三条单元测试、故意失败和恢复构建,验证测试怎样守住打包入口,并给出依赖树、有效POM及构建排错方法。

code2cat的博客 443

Linux内核vmlinuz文件:了解和编程

vmlinuz文件是Linux操作系统中的内核镜像文件。它包含了Linux内核的压缩版本,用于引导和启动操作系统。vmlinuz文件通常是一个zImage格式的压缩内核镜像,其中包含了操作系统所需的核心功能和驱动程序。vmlinuz文件的名称可能会因Linux发行版和版本而有所不同,但它们的作用是相同的。在某些发行版中,vmlinuz文件可能被重命名为vmlinux或bzImage。

PixelDyno的博客 1350

第 1 章:IDEA 创建 SpringBoot3.5.16 Maven 项目

前置:环境全部就绪(JDK17 + Maven3.9.11 + IDEA 配置完成)目标:使用 IDEA 新建 Maven 类型 SpringBoot3 项目,确认包名、版本正确,项目能正常启动,完成本章启动测试两种创建方式:① IDEA 内置 Spring Initializr(推荐) ② start.spring.io 网页生成导入。我们用第一种。

qq_36158551的博客 268

【教程4>第2章>第19节】 GMSK解调系统的FPGA开发与matlab对比验证

MSK(Minimum Shift Keying,最小频移键控)和GMSK(Gaussian Minimum Shift Keying,高斯最小频移键控)都是数字调制技术,主要用于无线通信系统中将数字信号转换为模拟信号进行传输。它们都是连续相位移键控(Continuous Phase Shift Keying, CPK)的一种形式,意味着相邻码元之间没有相位跳变的突变,而是连续过渡,这有助于减少信号带宽和降低邻道干扰。GMSK的解调过程与MSK类似,我们这里还是采用和MSK解调一样的1bit解调方法。

FPGA/MATLAB学习教程/源码/项目合作开发 1221

人形机器人电路板和算法分析

人形机器人电路板与算法深度剖析 电路板领域:人形机器人电子系统分为计算、驱动、感知、能源、通信五大模块。主控板采用高性能SoM(如NVIDIA Jetson AGX Orin),需满足严格电源完整性(PDN)与信号完整性(SI)要求;关节驱动板集成MCU、GaN/SiC功率器件及高精度编码器接口,采用刚柔结合PCB以适应狭小空间。挑战包括热-振可靠性(85°C/10G振动)、高密度互连(3mil线宽)及EMC兼容性。 算法领域:运动控制依赖MPC(模型预测控制)与强化学习(RL),实现实时动态平衡;感知算法

几十年资深高级架构师,技术专家的技术笔记。专注C、Java、Python、微服务、云原生、AI工程化及高并发系统分布式架构实战,分享源码剖析、性能调优与架构治理经验。 305

Maven&Nexus

本文详细介绍Maven的下载与配置,包括环境变量设置、settings.xml中本地仓库与阿里云镜像配置,以及JDK 21的编译适配。通过IDEA集成Maven,按标准目录结构手动创建项目,编写pom.xml和Java代码,使用mvn clean compile编译并生成字节码,最终通过java命令运行程序,并执行mvn install将jar包安装至本地仓库,完成完整构建流程。

m0_74008548的博客 166

深度学习实战87-高中数学自适应测试系统研究与应用研发,前后台页面设计

大家好,我是微学AI ,今天给大家介绍一下深度学习实战87-高中数学自适应测试系统研究与应用研发,前后台页面设计。高中数学自适应测试系统旨在通过精准评估学生能力,用最少的题目发现其薄弱环节,并提供定制化的学习计划,帮助学生快速提升成绩。同时,系统结合了AI大模型实现自动判卷、生成报告,减轻教师负担,并支持个性化作业布置,使教学更加高效。学生可以清晰了解自身学习状态,教师也能获得精准的学生画像,实现差异化教学。

微学AI的博客 444

Maven && Nexus

Maven是Apache提供的Java项目自动化构建与依赖管理工具,核心功能为项目构建和依赖管理。它通过POM(pom.xml)定义项目坐标(GAV:groupId、artifactId、version),遵循标准化目录结构,实现编译、测试、打包、部署等流程自动化。借助中央仓库与本地/私服仓库,Maven可高效管理jar包及其依赖,避免版本冲突,提升开发效率,是大型Java项目不可或缺的工具。

m0_74008548的博客 245

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

第 1 章:IDEA 全局配置 Maven + 新建 SpringBoot3 Maven 项目

目标:把 IDEA 绑定我们刚才装好的 Maven3.9.11,使用 Spring Initializr 创建项目,拉取依赖,保证项目能正常启动。前置:JDK17、Maven3.9.11、settings.xml 阿里云镜像都配置完成。

qq_36158551的博客 302

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

从一次 401 到可复现构建:Maven 私有依赖失效的排查与工程化治理

一次 401 错误暴露了 Maven 依赖治理的深层问题:镜像配置与 profile 激活冲突,导致私有依赖被错误路由至失效仓库。根因在于 mirrorOf=* 与 !jeecg 的矛盾规则,叠加本地缓存失败记录,使 modbus4j 等三类私有依赖无法解析。通过分析依赖解析流程、修复认证配置并清除 .lastUpdated 缓存,实现一次性修复。最终提出将构建环境固化为可复现的工程化方案,确保未来构建稳定可靠。

BADAO_LIUMANG_QIZHI的博客 223

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

3. 代码管理-构建工具-Maven进阶

每个 Java 开发者都像一位只靠外卖 App 下单的食客:在pom.xml里复制粘贴一行依赖坐标,然后坐等上菜。但没人告诉过你 Maven 的后厨长什么样——生命周期怎么流转、依赖为什么会"打架"、多模块项目靠什么拧成一股绳。这篇教程就是你的"后厨通行证"。我们不聊cleancompilepackage这种点菜级别的基础操作,而是直接走进 Maven 的灶台:搞清楚它的底层模型(生命周期与坐标体系),再逐个解锁依赖调解Profile 多环境多模块聚合继承插件体系私服发布这些让老手效率翻倍的硬核技能。

princemilo的博客 288

彭大帅的CI/CD实战第4篇 构建节点:SSH 纳管与 Maven 环境

本文为“控制器不动手,干活的另有其人”系列第四篇,介绍如何搭建一台纯构建机(jenkins-agent,10.10.10.78),通过SSH方式由Jenkins控制器纳管,实现编译任务与控制台分离。重点涵盖系统准备(安装JDK21、Maven、Git)、SSH免密连接配置、工作目录结构解析(尤其@tmp目录使用规范)、Maven本地仓库优化及镜像加速配置。通过标签调度、横向扩容提升并发能力,并提供节点可用性验证与排障速查表。最终达成构建节点就绪标准,为后续流水线与双活集群部署奠定基础。

彭大帅的博客 467

报错:Error running‘springboot-1 [package]‘ No valid Maven installation found

IDEA提示“No valid Maven installation found”本质是找不到Maven。原因无非两个:未安装或未配置路径。解决方法:首选方案——使用IDEA自带的Maven(设置中选Bundled Maven),无需额外配置;次选方案——手动下载Maven,配置M2_HOME环境变量,并在IDEA中指定其根目录。注意路径不能含中文、空格,配置后刷新项目并清除缓存。面试加分点:M2_HOME是Maven根目录的环境变量,用于定位mvn命令。口诀:用自带省事,配环境变量别踩坑,路径干净+刷新重

weixin_51288065的博客 236

7、Maven:生命周期与插件

Maven生命周期与插件紧密关联,生命周期阶段通过绑定插件目标完成实际构建任务。默认插件已为各阶段(如compile、test、package、install、deploy)配置好目标。插件可包含多个目标,支持内置与自定义绑定,一个阶段可绑定多个目标,一个目标也可绑定至多个阶段。插件配置可通过命令行、POM中全局或任务级配置实现,灵活控制构建行为。

博风_刺耳的博客(网络记事本) 259

Maven:豆包:公司局域网搭建私服之后,我们是在pom里配置这个远程仓库还是在settings.xml文件里配置镜像呢?

企业内网私服推荐使用settings.xml配置mirrorOf=*,实现全局请求转发至公司私服,保障安全、统一与高效。pom.xml中repository仅用于声明项目专属仓库,不建议在镜像模式下使用。前者全局生效、密码不外泄;后者随代码分发,适合多私服混合或开源场景。避免在pom中写仓库导致被镜像拦截失效,关键点:mirror是路由,repository是定义,二者语义不同,选型需根据团队协作与安全需求决定。

博风_刺耳的博客(网络记事本) 358

Maven 依赖冲突排查实录:dependency:tree 与 exclusions 实战

Maven NoSuchMethodError 怎么排查?本文讲解 dependency:tree 定位冲突路径、Maven 版本仲裁规则、dependencyManagement 与 exclusions 两种解法,以及 enforcer 插件 dependencyConvergence 防回归配置。

weixin_38291577的博客 305

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 191

Spring Boot 工程通用能力建设:声明式事务定制与 Redis 缓存实践

本文探讨Spring Boot中声明式事务的进阶实践,通过解耦“切点”与“事务属性”,实现灵活控制。核心包括:基于方法名的只读规则(如get*、find*自动设为只读),组合事务属性源确保@Transactional注解优先于命名规则,以及自定义切点实现事务统一织入。该方案提升代码可维护性,避免误写,同时支持特殊场景覆盖,构建更健壮的事务治理体系。

BADAO_LIUMANG_QIZHI的博客 234

数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南

Oracle 提供了ORA_ROWSCN伪列(System Change Number),记录最后修改行的 SCN,类似 PostgreSQL 的xmin。实践中通常仍使用 version 字段方案,逻辑与 MySQL 完全相同。-- Oracle:通过 ORA_ROWSCN 实现乐观锁-- 更新时比对 SCN// 自定义注解// AOP 切面@Aspect@Component@Slf4jtry {

yjc_1111的专栏 394

Spring Boot 缓存一致性怎么保证?@Cacheable、@CacheEvict 与事务提交时机实战

Spring Boot 项目中,为什么数据库更新成功后,接口仍然返回旧数据?本文从 Spring Cache 的工作机制入手,结合 @Cacheable、@CacheEvict、Caffeine 和事务同步回调,分析缓存失效时机、事务提交顺序及并发回填等常见问题,并提供代码示例、解决方案和测试思路,帮助开发者设计更可靠的缓存更新机制。

代码不止,探索不息 247
上一篇: VUE知识点
下一篇: 请求&响应&三层知识点
Jie_Chang
博客等级 码龄4年 571粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jie_Chang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值