Maven打包SpringBoot项目,因包含SpringBootTest单元测试和Java预览版特性导致打包失败

SpringBoot启用Java预览版特性(无测试类)

pom.xml文件中加入以下配置表示启用Java预览版

xml 复制代码
 <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-compiler-plugin</artifactId>
     <configuration>
         <release>${java.version}</release>
         <encoding>UTF-8</encoding>
         <compilerArgs>
             <arg>--enable-preview</arg>
         </compilerArgs>
     </configuration>
 </plugin>

当项目中包含此配置,若无SpringBootTest测试类,则能正常编译打包

SpringBoot启用Java预览版特性(含测试类)

若项目中包含单元测试则需要额外配置--enable-preview参数

xml 复制代码
 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <release>${java.version}</release>
        <encoding>UTF-8</encoding>
        <compilerArgs>
            <arg>--enable-preview</arg>
        </compilerArgs>
    </configuration>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <argLine>--enable-preview</argLine>
    </configuration>
</plugin>

Maven package与单元测试的关系

Maven执行package前会执行一次test

由于spring-boot-starter-test依赖的作用域是test,SpringBootTest的单元测试类不会参与打包

但若是单元测试不通过,则会导致打包失败

相关推荐
轮到我狗叫了2 分钟前
力扣.H指数力扣.字母异位词力扣.289生命游戏力扣452.用最小数量的箭引爆气球力扣.86分隔链表力扣.轮转数组
java·数据结构·算法
zeijiershuai23 分钟前
SpringBoot项目配置文件、yml配置文件
java·spring boot·yml
Java永无止境1 小时前
JAVASE:常见的算法
java·开发语言·数据结构·算法·排序算法
2301_815357701 小时前
Maven:在原了解基础上对pom.xml文件进行详细解读
java·开发语言·数据库
CrazyClaz1 小时前
Java核心基础
java
琢磨先生David1 小时前
《Java 单例模式:从类加载机制到高并发设计的深度技术剖析》
java·设计模式
钢铁男儿1 小时前
C# 深入理解类(析构函数和this关键字)
java·python·c#
举一个梨子zz2 小时前
Java—— IO流的应用
java·开发语言·intellij-idea·io·需求分析·file