当前位置: 首页 > news >正文

解决在test以外的目录下导入junit无效

以上引用来自src目录下的文件,可以看到,和junit有关的导入都飘红,但明明junit已经被正确导入进了项目中。

再看右侧的Maven的依赖下方,junit的右边有一个很不起眼的(test)

这是因为junit作为测试框架,可能包含仅适用于测试环境的代码,这在生产环境中可能产生安全问题。所以被限制了在了test这一作用域。

如果想在src目录下也能使用,需要手动改为<scope>compile</scope>,即

修改之后,File > Invalidate Caches > Invalidate and Restart, 看到原先飘红的语句不再飘红。

注:

在 Maven 的 `pom.xml` 文件中,依赖的 `scope` 元素用于指定依赖的可见性和在构建生命周期中的使用范围。`scope` 可以有以下几种值:

1. compile:这是默认的 scope,用于项目的编译和执行阶段。`compile` 依赖在所有的类路径中都是可用的,并且它们也会被打包。

2. provided:用于标记那些由 JDK 或者一个容器提供的依赖,比如 Servlet API 和 Java EE API。这些依赖只在编译和测试时可用,不会被打包,因为它们应该由运行环境提供。

3. runtime:这些依赖不在编译时需要,但在运行时需要。例如,JDBC 驱动就是典型的 `runtime` 依赖。

4. test:这些依赖仅在编译和运行测试代码时使用。它们在正常的编译和运行阶段都不可用。

5. system:这是一种特殊的 scope,用于从系统的某个路径中提供依赖。它类似于 `provided`,但需要通过 `<systemPath>` 指定依赖的具体位置。这种方式通常不推荐,因为它依赖于机器的特定配置。

6. import(仅在 `<dependencyManagement>` 中使用):这不是用于具体依赖,而是在一个项目的 `dependencyManagement` 部分中使用,用于导入其他项目的 `dependencyManagement` 部分,以便统一管理项目组或组织中多个项目的依赖版本。

每种 scope 都有其特定的使用场景,选择适当的 scope 可以帮助确保项目的依赖管理更加高效和清晰。

http://www.lryc.cn/news/273438.html

相关文章:

  • docker 在线安装mysql 8.0.21版本
  • WPF DatePicker与Calendar的使用和样式修改
  • 从0开始python学习-40.通过正则表达式/json进行接口关联
  • 【React系列】高阶组件
  • 听GPT 讲Rust源代码--src/tools(38)
  • .NET C# 如何获取object对象的数据
  • 使用IDEA创建使用 JDK8 的 2.x.x 版本的 Spring Boot 项目以及 Spring Boot 项目如何修改JDK版本
  • 游戏服务器整体架构思考
  • labelme 标注的数据集转化为Mask-Rcnn适用的数据集
  • x-cmd pkg | tig - git 文本模式界面
  • 信息论与编码期末复习——概念论述简答题(一)
  • [Kubernetes]4. 借助腾讯云TKE快速创建Pod、Deployment、Service部署k8s项目
  • 二叉排序树的创建、插入、查找和删除【数据结构】
  • 【管理篇 / 恢复】❀ 07. macOS下用命令刷新固件 ❀ FortiGate 防火墙
  • 工作纪实40-使用redis的几种姿势
  • 修改 docker /dev/shm 的大小
  • 【观察】Aginode安捷诺:坚守“长期主义”,服务中国数字经济
  • HttpClient库与代理IP在爬虫程序中的应用
  • C#最佳工具集合:IDE、分析、自动化工具等
  • promethues grafana 安装和使用
  • 华为DriveONE电机控制器拆解实拍
  • 【git使用】历史commit的分割(git rebase和 git reset的联合使用)
  • 栈和队列oj题——225. 用队列实现栈
  • 集合的三种遍历方式
  • Mysql 中的常用命令
  • 【Java】CompletableFuture使用方法
  • 摆烂式学习ssh
  • 用 Python 抓取 bilibili 弹幕并分析!
  • 目标检测YOLO实战应用案例100讲-基于红外图像处理的无人机光伏组件故障检测(续)
  • go mod 命令详解