Maven常见问题汇总

问题一

maven项目无法导包

原因一

添加完依赖后未进行刷新

解决方案

idea中进行刷新maven的操作,使maven的配置文件重新加载

原因二

依赖作用域不对

解决方案

修改作用域范围:

<scope>compile</scope>

问题二

java: 错误: 不支持发行版本 5

原因

解决方案

问题三

JUnit5 代码报错并没有具体的 Java哪行命令 错误或提示 no tests
举例:

警告: TestEngine with ID 'junit-jupiter' failed to discover tests
java.lang.NoSuchMethodError: org.junit.platform.engine.EngineDiscoveryRequest.getDiscoveryListener()Lorg/junit/platform/engine/EngineDiscoveryListener;
	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.resolveCompletely(EngineDiscoveryRequestResolution.java:89)
	......

原因

依赖存在多个版本的JUnit5组件

解决方案

使用物料清单解决:

<dependencyManagement>
        <dependencies>
            <!--当使用 Gradle 或 Maven 引用多个 JUnit 工件时,此物料清单 POM 可用于简化依赖项管理。不再需要在添加依赖时设置版本-->
            <dependency>
                <groupId>org.junit</groupId>
                <artifactId>junit-bom</artifactId>
                <version>${junit.jupiter.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

添加后,对应的依赖删除版本<version>标签

总结

JUnit5+Maven项目对应常见报错总结:
一般为依赖没有正确作用域,或是多个依赖之间有版本冲突,为了解决JUnit5的版本冲突,建议大家使用物料清单解决,框架版本升级,哪怕添加了多个依赖,也可只改动一个地方即可把所有依赖全部升级。