【springboot3.x 记录】关于Jakarta包无法引入的问题

最近想将一些项目升级到springboot3.x和java17的时候,发现项目依赖中有Jakarta的包,但是代码标红提示没有相关的类,特此记录一下排查问题和最终解决问题的思路方法

一、发现问题

因为之前有创建过 springboot3.x + java17 的项目,也运行正常。所以最近想着将一些旧项目也做一下update,但是不幸运的是,当改了一通代码后编译的时候,提示 "程序包jakarta.annotation不存在"。

下图看到 Resource 注解是标红提示没有找到。

之前也知道Java EE要迁移到Jakarta EE,也对整个项目的相关代码进行了修改,但是为什么还会提示有异常呢?

二、分析问题

1.依赖引入

首先考虑的肯定是对应的包是否已经引入进来,于是查看了项目的依赖

依赖里面明明是有的,为什么还是提示没有这个注解类呢?

于是 mvn clean、ide清缓存索引等等一波操作后,仍是无果....

2.发现问题点

后来看了一下项目配置,看了一下这里面的依赖,好家伙,作用域scope居然是test...

那为什么作用域会是测试阶段的呢?

3.查看依赖关系

那就看看到底是从哪里引入进来的

通过依赖分析工具,查到原来是从 spring-boot-starter-test 引入进来的,而项目中这个依赖的作用域确实是 test

那问题来了,为什么之前的项目就可以的呢?不过这个 jakarta 包不应该是从测试依赖导入进来的啊!

4.对比分析

于是对比了一下之前运行正常的项目,看看这个 jakarta 包是如何正常引入进来运行的。

好家伙,原来是从 spring-boot-starter-web 引入进来的,同时也看看其他的几个 jakarta 包。

真的不看不知道,平常真没怎么注意到这里面的依赖学问,因为自从用了 springboot 的 starter ,就真的很少关注到这些问题。

三、解决问题

要调整的这个项目里面因为是要打成jar包给其他项目使用,所以我就不想引入太多依赖包,就没有引入 starter,只是单纯的引入了 spring-web 这个包,但是这里面并没有 jakarta 依赖,而刚好项目里面又引入了一些单元测试用的依赖,所以阴差阳错就将 jakarta 以 test 作用域引入进来了...

所以,最终还是要引入 spring-boot-starter-web...

四、后续

通过查阅一些资料发现,原来 Java 17 已经不包括 jarkarta 模块...

在 Java 17 中,Jakarta EE 被移除,取而代之的是引入了 Java EE 的一部分作为扩展模块。要在 Java 17 中使用 Java EE 的功能,你需要在项目的 pom.xml 文件中添加相应的依赖

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

第6讲:v-for使用

目录 1.循环遍历 2.v-for遍历整形变量(99乘法表) 3.v-for遍历普通数组 4.v-for遍历数组对象 1.循环遍历 v-for指令基于一个数组渲染一个列表,它和JavaScript的遍历语法相似: v-for”item in list” list 是一个数组, i…

指针笔试题讲解

文章目录 题目答案与解析1、234、5、6、7、8、 题目 int main() {int a[5] { 1, 2, 3, 4, 5 };int *ptr (int *)(&a 1);printf( "%d,%d", *(a 1), *(ptr - 1));return 0; }//由于还没学习结构体,这里告知结构体的大小是20个字节 //由于还没学习结…

2023-09-25 LeetCode每日一题(LFU 缓存)

2023-09-25每日一题 一、题目编号 460. LFU 缓存二、题目链接 点击跳转到题目位置 三、题目描述 请你为 最不经常使用(LFU)缓存算法设计并实现数据结构。 实现 LFUCache 类: LFUCache(int capacity) - 用数据结构的容量 capacity 初始…

腾讯mini项目-【指标监控服务重构】2023-08-25

今日已办 traefik proxy jaeger Prometheus prometheus | Prometheus 配置完依然无法实现 web-url的前缀访问【待解决】 Set span storage type : elasticsearch services:elasticsearch:image: elasticsearch:7.17.12container_name: elasticsearchnetworks:- backend # …

2023.9.23 关于 HTTP 详解

目录 HTTP 协议 认识 URL HTTP 请求 认识方法 HTTP 响应 认识状态码 总结 HTTP 请求的构造 Form 表单构造 AJAX 构造 Postman 构造 HTTP 协议 应用层使用最广泛的协议浏览器 基于 HTTP协议 获取网站是 浏览器 和 服务器 之间的交互桥梁HTTP协议 基于传输层的 TCP协…

软件测试之Web安全测试详解

前言 随着互联网时代的蓬勃发展,基于Web环境下的应用系统、应用软件也得到了越来越广泛的使用。 目前,很多企业的业务发展都依赖于互联网,比如,网上银行、网络购物、网络游戏等。但,由于很多恶意攻击者想通过截获他人…

Visual Studio 2017 安装

C自学精简实践教程 目录(必读) 这篇文章会保证你第一次安装VS2017就成功运行Hello World! 下载Visual Studio Installer Gitee 下载 VS2017/vs2017_Community.exe CalmReason/VisualStudio - 码云 - 开源中国 (gitee.com) 百度云下载 链接:https://pan.baidu…

【ROS入门】使用 ROS 服务(Service)机制实现同步请求与答复

文章结构 任务要求话题模型实现步骤自定义srv定义srv文件编辑配置文件编译 自定义srv调用vscode配置编写服务端实现编写客户端实现 执行启动roscore编译启动客户端和服务端编译启动roscore启动节点 任务要求 编写代码实现 ROS 中的服务请求与答复: 创建服务端,注册…

YZ09: VBA_Excel之读心术

【分享成果,随喜正能量】多要求自己,你会更加独立,少要求别人,你会减少失望,宁愿花时间去修炼 不完美的自己,也不要浪费时间去期待完美的别人!。 我给VBA下的定义:VBA是个人小型自动…

uni-app:实现元素中实现竖直居中

效果展示 前&#xff1a; 后&#xff1a; 未实现前代码 <template><view class"container"><view class"centered-element">我是要被居中的元素</view></view> </template><script>export default {data() {r…

56块钱搭建一个ubuntu 2204 linux 服务器

硬件pdd上淘的一个linux小盒子 应该是以前的机顶盒之类的 实物图如下 今天刚收到小盒子 找了个显示器 键盘 查到小盒子上通电 本来指示灯应该亮的 老板刷机之后 led灯都不亮了 不知道有没有开机 我还以为坏了 刚开始 然后直接连到显示器上 有输出 那说明没问题…

MySQL-树型结构数据查询

表结构 进行树形结构查询&#xff0c;利用特殊语法进行操作 with recursive t as(select parent_id , business_namefrom business_line where id 21union allselect a.parent_id, a.business_namefrom business_line a join t on a.id t.parent_id) select business_name f…

OpenCV两张图片实现稀疏点云的生成

1 E矩阵 1.1 由F到E E K T ∗ F ∗ K E K^T * F * K EKT∗F∗K E 矩阵可以直接通过之前算好的 F 矩阵与相机内参 K 矩阵获得 Mat E K.t() * F * K;相机内参获得的方式是一个较为复杂的方式&#xff0c;需要使用棋盘进行定位获得&#xff0c;我们这里直接使用了 OpenMVG 提…

网络编程-UDP协议(发送数据和接收数据)

需要了解TCP协议的&#xff0c;可以看往期文章 https://blog.csdn.net/weixin_43860634/article/details/133274701 TCP/IP参考模型 通过此图&#xff0c;可以了解UDP所在哪一层级中 代码案例 发送数据 package com.hidata.devops.paas.udp;import java.io.IOException; …

HTML+CSS综合案例二:CSS简介

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title> CSS简介</title><style>h1{color: #33…

Learn Prompt- Midjourney 图片生成:Image Prompts

Prompt 自动生成 前不久&#xff0c;Midjourney 宣布支持图片转 prompt 功能。 原始图片​ blueprint holographic design of futuristic Midlibrary --v 5Prompt 生成​ 直接输入 /describe 指令通过弹出窗口上传图像并发送&#xff0c;Midjourney 会根据该图像生成四种可…

机器学习小白理解之一元线性回归

关于机器学习&#xff0c;百度上一搜一大摞&#xff0c;总之各有各的优劣&#xff0c;有的非常专业&#xff0c;有的看的似懂非懂。我作为一名机器学习的门外汉&#xff0c;为了看懂这些公式和名词真的花了不少时间&#xff0c;还因此去着重学了高数。 不过如果不去看公式&…

渗透测试信息收集方法和工具分享

文章目录 一、域名收集1.OneForAll2.子域名挖掘机3.subdomainsBurte4.ssl证书查询 二、获取真实ip1.17CE2.站长之家ping检测3.如何寻找真实IP4.纯真ip数据库工具5.c段&#xff0c;旁站查询 三、端口扫描1.端口扫描站长工具2.masscan(全端口扫描)nmap扫描3.scanport4.端口表5.利…

短信登录功能如何实现?

简介&#xff1a; 在日常生活中我们登录/注册某些网站/APP是通常可以选择 密码登录和手机号登录。 为什么手机号发送后会有验证码返回呢&#xff1f; 网站如何识别我的验证码是否正确&#xff1f; 如果我的个人网站也想要实现短信登录功能&#xff0c;具体该如何实现&#xff1…

GiliSoft USB Lock v10.5.0 电脑USB设备管控软件

网盘下载 软件功能特性 禁止USB / SD驱动器 禁用从USB / SD磁盘读取&#xff0c;禁用写入USB / SD磁盘&#xff0c;阻止非系统分区。它不允许任何类型的USB / SD驱动器访问您的计算机&#xff0c;除非您授权它或它已在可信设备白名单。 CD锁&#xff0c;块媒体和蓝光光盘 禁用…