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() {
}
}

浙公网安备 33010602011771号