Maven项目常见各类 QA

一、pom.xml文件

1.1 there is no POM in this directory

[ERROR] The goal you specified requires a project to execute but there is no POM in this directory (/home/cys/SEtesting/example/smartut-report). Please verify you invoked Maven from the correct directory. -> [Help 1]
 

-1.1.1原因:此类报错,因为该目录下无pom.xml配置文件;

-1.1.2解决:前往有pom.xml的目录一级;

1.2 The file /home/xx/pom.xml is not sorted :

 一般出现在改完pom.xml后:

[INFO] Verifying file /home/xx/pom.xml

[ERROR] The xml element <groupId>junit</groupId> should be placed before <groupId>net.javacrumbs.json-unit</groupId>

[ERROR] The file /home/xx/pom.xml is not sorted

-1.2.1原因: 该pom.xml 的格式被你改出了问题,问题不大,用一种排序插件[sortpom]的命令即可;

-1.2.2解决: 该目录下输入如下命令即可:[100%解决not sorted]

mvn com.github.ekryd.sortpom:sortpom-maven-plugin:3.3.0:sort -Dsort.predefinedSortOrder=custom_1

1.3 更改pom.xml后显示有几个plugin not found

java.lang.NoClassDefFoundError,这是因为 JVM 无法初始化 org.apache.james.backends.cassandra.DockerCassandraSingleton 类。

-1.3.1 原因

  1. 依赖未正确加载:所需的类或库没有正确加载到类路径中。
  2. 类路径问题:类或库存在于类路径中,但在运行时未正确加载。
  3. 类加载器问题:类加载器配置问题导致某些类无法加载。

-1.3.2 解决:

  1. 检查依赖是否正确加载:确保所需的依赖已经被正确添加到 pom.xml 文件中,并且已经被下载到本地仓库。
  2. 强制更新依赖项:使用 -U 选项强制更新所有依赖项。
  3. 检查类路径:确认类路径中是否包含了所需的类或库。
  4. 检查类加载器配置:确保类加载器配置正确。

 尝试mvn clean install  -U【报错:Could not initialize class不能初始化类】

[INFO] Running org.xx.init.xTest

[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.005 s <<< FAILURE! - in org.xx.init.xTest

[ERROR] org.xx.init.xTest  Time elapsed: 0.005 s  <<< ERROR!

java.lang.NoClassDefFoundError: Could not initialize class

org.apache.james.backends.cassandra.DockerCassandraSingleton

1.4 pom.xml内配置的{argLine} 介绍

在 Maven 中,argline 是一个用于配置 JVM 参数的属性,它允许你在构建或运行 Maven 插件时传递参数给 Java 应用程序。

同样,对于 ${maven-plugin-annotations.version}这一类参数:

会自动到主项目的pom.xml去看设置的参数值;

二、Maven项目执行生命周期中的报错

2.1 Maven版本不够:

按其本身的英文解释就是当前版本3.6.3不行,至少需要3.8.1往上。

2.2 clean相关

2.2.1 构建前没有进行clean,会直接读取上一次构建的缓存:

2.3 Mvn  compile / test-compile 报错:

2.3.1 a.java[20,21]找不到符号

如下:

[ERROR] /home/a/aTest.java:[51,18] 找不到符号

  符号:   类 TestId

  位置: 类 org.a.aTest

2.3.1.1 原因 :pom.xml缺少相应的依赖

mvn test 依赖于 mvn compile 的结果; mvn compile 没有成功执行,从而导致 “找不到符号” 错.

2.3.1.2  解决:

确认所需的依赖是否已经被正确添加到 pom.xml 文件中,并且是否已经被正确下载到本地仓库。

修改pom.xml-->mvn clean install. 再进行compile;

2.3.2 b.java:[33,1] 仅从类和接口静态导入

2.3.2.1 原因 :  

第 33 行存在一个非静态导入,而你只允许从类和接口进行静态导入。这通常是因为你在导入某个类或接口时,错误地导入了一个非静态成员。

2.3.2.2  解决:
  1. 检查导入语句

      确认你的导入语句是否正确。如果是非静态成员,则需要改为静态导入。
  2. 修改导入语句

      如果你需要导入的是一个类或接口中的静态成员,则应该使用 static 关键字进行导入。

2.3.3 c.java:[38,56] 程序包a1.a2.ax不存在     

2.3.3.1 原因 :mvn test 依赖于 mvn compile 的结果;

如果 mvn compile 没有成功执行,测试代码编译所需的主代码将不可用,从而导致 “找不到符号” 错

2.3.3.2  解决:

2.3.4 d.java:[98,9] 方法不会覆盖或实现超类型的方法   

2.3.4.1 原因 :

意味着在子类中定义了一个方法,但该方法并没有正确地覆盖(override)或实现(implement)其超类(父类)或接口中的相应方法。

  1. 方法签名不同

      方法名、返回类型、参数列表必须完全一致。
  2. 访问修饰符不匹配

      覆盖的方法必须具有至少与超类方法相同或更宽松的访问级别。例如,如果超类方法是 public 的,那么子类覆盖的方法也必须是 public 的。
  3. 未正确标注 @Override 注解

      使用 @Override 注解可以确保方法确实覆盖了超类的方法。如果没有正确使用注解,IDE 可能不会提示错误。

2.3.4.2  解决:

  1. 检查方法签名

      确保方法名、返回类型、参数列表与超类的方法完全一致。
  2. 检查访问修饰符

      确保访问修饰符至少与超类方法相同或更宽松。
  3. 使用 @Override 注解

      使用 @Override 注解可以确保方法确实覆盖了超类的方法。

2.4 install相关

2.4.1报错解决---科学上网

但是这个报错也没必要解决,如果只是对部分模块进行测试的话;

[ERROR] I/O error for image [registry-1.docker.io/library/eclipse-temurin]:

[ERROR]     Connect to production.cloudflare.docker.com:443 [production.cloudflare.docker.com/199.16.156.11, production.cloudflare.docker.com/2a03:2880:f102:183:face:b00c:0:25de] failed: 网络不可达

(connect failed)

2.4.2 install时: Could not resolve dependencies  xx 无法解析依赖;

[ERROR] Failed to execute goal on project abc: Could not resolve dependencies for project org.apache.x:abc:jar:3.7.6-SNAPSHOT:

 https://repository.apache.org/snapshots was cached in the local repository, resolution will not be reattempted until the update interval of apache.snapshots has elapsed or updates are forced -> [Help 3]

2.4.2.1 原因

原因在于 Maven 试图从远程仓库 https://repository.apache.org/snapshots 下载依赖项,但由于某种原因未能成功,导致 Maven 从本地仓库缓存中读取,而不是重新尝试解析。

2.4.2.2 解决
  1. 清理本地仓库缓存:确保本地仓库中没有错误的缓存。
  2. 强制更新依赖项:使用 -U 选项强制更新所有依赖项。
  3. 检查依赖版本:确保依赖版本正确并在远程仓库中可用。
  4. 更新远程仓库配置:确保远程仓库配置正确且可访问。
  5. 检查远程仓库状态:手动检查远程仓库的状态。
  6. 手动下载依赖项:如果远程仓库暂时不可用,可以手动下载依赖项并安装到本地仓库。
1)强制重新更新:
mvn clean install -U
2)更新远程仓库地址

可能 远程仓库的地址有问题 / 远程仓库暂时不可用 --- 可以尝试更新远程仓库的地址。

3)检查依赖版本

确保你的项目中定义的依赖版本正确且在远程仓库中可用。

如果依赖项的版本是 SNAPSHOT,则需要确保远程仓库支持 SNAPSHOT 版本的更新

假设你的 pom.xml 文件中包含了对 abc 的依赖:

<dependencies><dependency><groupId>org.apache.x</groupId><artifactId>abc</artifactId><version>3.7.6-SNAPSHOT</version></dependency><!-- 其他依赖 -->
</dependencies>
3)-a 检查远程仓库状态

如果你怀疑远程仓库的状态有问题,可以尝试手动访问仓库地址:

curl https://repository.apache.org/snapshots/org/apache/x/abc/3.7.6-SNAPSHOT/

如果返回的是仓库的索引文件,说明仓库是可访问的;

如果返回错误信息,则可能是远程仓库暂时不可用。

3)-b 使用 SNAPSHOT 版本

对于 SNAPSHOT 版本的依赖,需要确保远程仓库支持自动更新。你可以通过以下方式配置:

  1. pom.xml 中配置

    <repositories><repository><id>apache.snapshots</id><name>Apache Snapshot Repository</name><url>https://repository.apache.org/snapshots</url><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots></repository>
    </repositories>
  2. 在全局 settings.xml 中配置

    <servers><server><id>apache.snapshots</id><username>your_username</username><password>your_password</password></server>
    </servers>
3)-c 手动下载依赖项

如果远程仓库暂时不可用,可以尝试手动下载依赖项并放置在本地仓库中:

  1. 下载依赖项

    你可以手动下载 .jar 文件和对应的 .pom 文件,并放置在本地仓库中。

  2. 安装依赖项

    使用 Maven 安装插件手动安装依赖项:

    mvn install:install-file \-Dfile=path/to/dependency.jar \-DpomFile=path/to/pom.xml \-DgroupId=org.apache.x \-DartifactId=abc \-Dversion=3.7.6-SNAPSHOT \-Dpackaging=jar

2.4.3 依赖有问题可以尝试 mvn clean install  -U 

【-U 选项用于强制 Maven 更新所有的快照依赖(SNAPSHOT dependencies)。通常【即不加-U】,Maven 会使用本地缓存的旧快照版本】

 三、运行smartut 工具 的 Q&A:

3.1

-Q: -class 后面写 target.classes.demo.A  ----为什么这样写类不行?

-A: class后跟的应该是“包.类”, 这个example. target不属于包名, 只能说是路径example/target

Demo才是包。Demo.A才是其中的类

3.2 Java -jar  ./smartut.jar   -h查看命令使用帮助

SmartUt 的命令行选项有助于设置和运行测试生成。以下是主要选项的解释:

-base_dir <arg>: 设置工作目录,测试和报告将保存在此目录中;

-class <arg>: 指定要生成测试的目标类,需提供完整的类名(如 org.foo.SomeClass);

-client_remote_debug <arg> 和 -master_remote_debug <arg>: 用于客户端和主进程的远程调试;

-continuous <arg>: 运行连续测试生成,参数可以是 EXECUTE, INFO, CLEAN。

-criterion <arg>: 指定测试生成的目标标准,可以用冒号分隔列出多个标准。

-D <property=value>: 设置系统属性。

-generateMOSuite, -generateRandom, -generateSuite, -generateSuiteUsingDSE, -generateTests: 指定不同的测试生成方法。

-heapdump: 当客户端 VM 发生内存溢出错误时创建堆转储。

-inheritanceTree: 在设置过程中缓存继承树。

-junit <arg>: 设置 JUnit 的前缀。

-libraryPath <arg>: 设置项目测试的本地库路径。

-listClasses: 列出指定类路径/前缀中的可测试类。

-listParameters: 列出可以用 -D 设置的所有参数。

-measureCoverage: 测量现有测试用例的覆盖率。

-mem <arg>: 设置客户端进程的堆大小(以 MB 为单位)。

-parallel <n i x>: 启动并行运行,n 是客户端数,i 是迭代频率,x 是通信率。

-prefix <arg>: 设置目标包前缀,用于测试生成。

-printStats: 打印类信息和可覆盖的目标。

-projectCP <arg>: 设置项目及其依赖项的类路径。

-seed <arg>: 设置随机数生成器的种子。

-setup <arg>: 使用属性文件创建 smartut 文件。

-smartutCP <arg>: 设置 SmartUt jar 文件的类路径。

-startedByCtg: 确定当前进程是否由 CTG 进程启动。

-target <arg>: 设置目标类路径,指定 jar 文件或包含 .class 文件的文件夹。

-writeDependencies <arg>: 将目标类的依赖项写入文件。

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

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

相关文章

消费类摄像头热销海内外,萤石出货量全球排名第一

随着消费者对家庭安全、便捷生活的需求日益增长&#xff0c;智能摄像头作为智能家居的重要组成部分&#xff0c;其市场需求将持续扩大。 IDC《全球智能家居设备市场季度跟踪报告&#xff0c;2024年第二季度》显示&#xff0c;二季度全球智能摄像头市场&#xff08;包含消费级室…

Vue2项目中vuex如何简化程序代码,提升代码质量和开发效率

Vuex为Vue中提供了集中式存储 库&#xff0c;其主要分为state、getter、mutation、action四个模块&#xff0c;它们每个担任了不同角色&#xff0c;分工不同&#xff1b;Vuex允许所有的组件共享状态抽取出来&#xff0c;以一个全局单例模式管理&#xff0c;状态集中存储在同一…

AniJS:无需编程的动画解决方案

前言 在网页设计中&#xff0c;动画效果能够显著提升用户体验&#xff0c;但传统的动画实现往往需要复杂的 JavaScript 代码。 AniJS 库的出现&#xff0c;为设计师和开发者带来了一种全新的动画实现方式&#xff0c;它通过简单的 HTML 属性就能创建出令人惊叹的动画效果。 介…

文档解析与向量化技术加速 RAG 应用落地

在不久前举办的 AICon 全球人工智能开发与应用大会上&#xff0c;合合信息智能创新事业部研发总监&#xff0c;复旦博士常扬从 RAG 应用落地时常见问题与需求&#xff08;文档解析、检索精度&#xff09;出发&#xff0c;分享了针对性的高精度、高泛化性、多版面多元素识别支持…

LeetCode[中等] 138. 随机链表的复制

给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff0c;其中每个新节点的值都设为其对应的原节点的值。新节点的 n…

贴片式TF卡(SD NAND)参考设计

【MK 方德】贴片 TF 卡参考设计 一、电路设计 1、 参考电路&#xff1a; R1~R5 (10K-100 kΩ)是上拉电阻&#xff0c;当 SD NAND 处于高阻抗模式时&#xff0c;保护 CMD 和 DAT 线免受总线浮动。 即使主机使用 SD NAND SD 模式下的 1 位模式&#xff0c;主机也应通过上拉电阻…

SpringBoot 流式输出时,正常输出后为何突然报错?

一个 SpringBoot 项目同时使用了 Tomcat 的过滤器和 Spring 的拦截器&#xff0c;一些线程变量在过滤器中初始化并在拦截器中使用。 该项目需要调用大语言模型进行流式输出。 项目中&#xff0c;笔者使用 SpringBoot 的 ResponseEntity<StreamingResponseBody> 将流式输…

照片压缩方法分享,掌握这些小技巧轻松压缩

照片已成为我们记录生活、分享美好的重要方式。然而&#xff0c;随着手机像素的不断提升&#xff0c;照片文件体积也越来越大&#xff0c;给存储和传输带来了不小的挑战。今天&#xff0c;就为大家介绍几种高效的照片压缩方法&#xff0c;掌握这些方法就能够轻易对图片进行压缩…

寻找右区间

题目链接 寻找右区间 题目描述 注意点 -10^6 < starti < endi < 10^6每个间隔的起点都 不相同如果某个区间 i 不存在对应的 右侧区间 &#xff0c;则下标 i 处的值设为 -1 解答思路 因为本题需要找到每个interval大于interval对应end的最小start值&#xff0c;所…

vue-i18n在使用$t时提示类型错误

1. 问题描述 Vue3项目中&#xff0c;使用vue-i18n&#xff0c;在模版中使用$t时&#xff0c;页面可以正常渲染&#xff0c;但是类型报错。 相关依赖版本如下&#xff1a; "dependencies": {"vue": "^3.4.29","vue-i18n": "^9.1…

红绿灯倒计时读秒数字识别系统源码分享

红绿灯倒计时读秒数字识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of …

小程序开发平台源码系统 各行各业适用的小程序开的平台 带完整的安装代码包以及搭建部署教程

系统概述 本系统采用模块化设计&#xff0c;包含前端展示层、后端逻辑处理层、数据库存储层以及管理后台等多个核心组件。前端展示层负责小程序的界面设计与交互体验&#xff1b;后端逻辑处理层则负责数据处理、业务逻辑实现及与第三方服务的对接&#xff1b;数据库存储层用于…

符合二级等保要求的SSL证书

根据等级保护对象在国家安全、经济建设、社会生活中的重要程度&#xff0c;以及一旦遭到破坏、丧失功能或者数据被篡改、泄露、丢失、损毁后&#xff0c;对国家安全、社会秩序、公共利益以及公民&#xff0c;法人和其他组织的合法权益的侵害程度等因素&#xff0c;等级保护对象…

第1章 C++初识

1.1 编写第一个C程序 1.打开Visual Studio点击"创建新项目" 2.点击"空项目"&#xff0c;并点击"下一步" 3.设置"项目名称"并"设置地址" 4.打开项目后&#xff0c;右击"源文件"并选择"添加"的"新建…

低代码可视化开发-uniapp新闻跑马灯组件-代码生成器

新闻跑马灯效果组件是一种在新闻、数据可视化大屏或其他信息展示场景中常用的动态文本展示方式。它通过滚动文本的形式&#xff0c;在有限的空间内展示更多的信息内容&#xff0c;同时增加了视觉吸引力和动态感。以下是对新闻跑马灯效果组件的详细介绍&#xff1a; 一、定义与…

LVGL-触摸屏-实体按键-编码器-多功能按键)

在使用stm32移植lvgl时由于没有触摸屏&#xff0c;所以选择了编码器和按键作为输入设备。但是按照教程全部正确的设置了编码器和按键后&#xff0c;编码器的回调函数不能被调用即encoder_read();函数中的内容不能被调用。debug后发现是创建输入设备时的indev_drv被覆盖&#xf…

​ETHShanghai 2024:十月盛典,首批嘉宾重磅揭晓!

随着「ETHShanghai 2024」的筹备工作不断推进&#xff0c;已经邀请了多位重要嘉宾参与。同时&#xff0c;以太坊联合创始人Vitalik Buterin 也将通过线上形式参与并进行开幕致辞。 目前&#xff0c;已经确认出席的嘉宾还包括 Mask Network 创始人 Suji Yan、EthStorage 创始人…

eCharts扩展图表

地址&#xff1a;echarts图表集 示例截图&#xff1a;

【Redis】下载安装Redis和Redis图形化界面工具教程(2024最新版本,史上最详细)

目录 一、Redis简介 二、Redis下载和安装 2.1、下载 2.2、安装 2.3、环境变量配置&#xff08;可省略&#xff09; 三、Redis启动验证 3.1、点击键盘上的WinR键&#xff0c;在跳出的运行界面中输入cmd并确定 3.2、输入redis-cli -v 查看redis的版本号 3.3、接着我们再…

python爬虫案例——抓取三级跳转网页,实现逐页抓取,数据存入mysql数据库(10)

文章目录 1、目标任务2、网页分析3、完整代码1、目标任务 目标站点:情话网(http://www.ainicr.cn/tab/) 任务:抓取该网站下所有标签下的所有情话语句,并将其存入mysql数据库 2、网页分析 用浏览器打开网页,按F12或右键检查,进入开发者模式,在Network-Doc下找到网页的数…