maven打包异常解决
项目正常运行,但是打包的时候发生以下异常内容:
Please refer to D:\java_project\wxContainer\target\surefire-reports for the individual test results.
Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
可以看出是test导致的问题,有两种方案解决。
第一种简单粗暴,test有问题,编译打包的时候忽略test即可
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
第二种方案去查找原因
package com.sz.container;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class WxContainerApplicationTests {
@Test
void contextLoads() {
}
}
test中的测试单元代码如上所示。
这是个测试类,并不是主启动类,指定任何配置类时,Spring Boot Test 会尝试自动查找主配置类,通常是带有 @SpringBootApplication
注解的类。但是这里有个问题在于该主启动类和测试类在的父子文件夹下
这是主启动类的文件
package com.sz.wechat;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.sz.wechat.mapper")
public class WxContainerApplication {
public static void main(String[] args) {
SpringApplication.run(WxContainerApplication.class, args);
}
}
你会发现两个类的package是不相同的。(可能早期路径相同,但是经过后期迭代发生了变动,但是修改者忽略了测试类的内容也需要修改。特别是现在将测试工作承包给大模型,没有指定路径,可能会出现类似的问题)这个时候要么修改测试类,使其和主启动类保持一致或者将测试类置于其子目录下。
当然,更推荐的方案是,在测试类中指定主启动类,这样提升了代码的容错率
package com.sz.wechat;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ContextConfiguration;
@SpringBootTest
@ContextConfiguration(classes = WxContainerApplication.class)
class WxContainerApplicationTests {
@Test
void contextLoads() {
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)