Spring Boot 无法执行目标 org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test

Posted

技术标签:

【中文标题】Spring Boot 无法执行目标 org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test【英文标题】:Spring Boot Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test 【发布时间】:2019-05-08 21:17:37 【问题描述】:

我正在使用 Eclipse 版本:2018-09 (4.9.0) 并且我已经安装了 Spring Tool Suit(STS) 在 Eclipse 中用于构建 Spring Boot 应用程序。

问题-> 每当我创建新的 Spring Starter Project 并尝试在不添加任何代码的情况下构建我的项目时。构建失败并出现以下错误。

[WARNING] The requested profile "pom.xml" could not be activated because it does not exist.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test (default-test) on project DemoSpringProject: There are test failures.
[ERROR] 
[ERROR] Please refer to C:\Users\SP064774\Util-Workspace\DemoSpringProject\target\surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

如果我删除具有默认测试的测试文件夹。它工作正常。但是为什么会这样。下面的文件夹是我删除的由 Spring boot 项目生成的文件夹

src/test/java

提前致谢。

更新

下面是生成的默认测试文件。

@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoSpringProjectApplicationTests 

  @Test
  public void contextLoads() 
  

来自引用文件的日志。 C:\Users\SP064774\Util-Workspace\DemoSpringProject\target\surefire-reports

--------------------------------------------------------------------
Test set: com.example.demo.DemoSpringProjectApplicationTests
-------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 3.473 s 

FAILURE! - in com.example.demo.DemoSpringProjectApplicationTests
contextLoads(com.example.demo.DemoSpringProjectApplicationTests)  Time 
elapsed: 0.002 s  <<< ERROR!
java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: 
org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 

'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration': 通过构造函数参数 0 表示的不满足的依赖关系;嵌套的 例外是 org.springframework.beans.factory.BeanCreationException: 错误 创建在类路径资源中定义的名称为“dataSource”的bean [org/springframework/boot/autoconfigure/jdbc/ DataSourceConfiguration$Hikari .class]:通过工厂实例化 Bean 方法失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:失败 实例化 [com.zaxxer.hikari.HikariDataSource]:工厂方法 'dataSource' 抛出异常;嵌套异常是 org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$ DataSourceBeanCreationException:无法确定合适的驱动程序 班级 引起:org.springframework.beans.factory.BeanCreationException:错误 创建在类路径资源中定义的名称为“dataSource”的bean [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$ Hikari.class]:通过工厂方法实例化 Bean 失败;嵌套的 异常是 org.springframework.beans.BeanInstantiationException: 失败 实例化 [com.zaxxer.hikari.HikariDataSource]:工厂方法 'dataSource' 抛出异常;嵌套异常是 org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$ DataSourceBeanCreationException:无法确定合适的驱动程序 班级 引起:org.springframework.beans.BeanInstantiationException:失败 实例化 [com.zaxxer.hikari.HikariDataSource]: 工厂方法' dataSource' 抛出异常;嵌套异常是 org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$ DataSourceBeanCreationException:无法确定合适的驱动程序 班级 造成的: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$ DataSourceBeanCreationException:无法确定合适的驱动程序 类

POM.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.1.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>DemoSpringProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>DemoSpringProject</name>
<description>Demo project for Spring Boot</description>

<properties>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-integration</artifactId>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

【问题讨论】:

默认测试包含什么? 更新了默认测试 关于名为 pom.xml 的配置文件不存在的警告表明您用于启动 Maven 的命令存在错误。你在用什么命令?另外,错误消息中提到的文件包含什么? @Andy 我正在使用全新安装。与它一起引发此错误的文件是我在更新中添加的文件。它通过spring boot自动生成测试类。我没有添加一行代码 好的,但是您用来运行 Maven 的完整命令是什么?查看它建议您参考的错误消息中提到的文件的内容仍然很有用 【参考方案1】:

您尚未共享您的 pom.xml 文件,因此我无法确定,但看起来您的类路径中没有数据库驱动程序。您要么需要添加对嵌入式数据库(H2 或 HSQLDB)的依赖项,要么设置单独的数据库(如 MySQL 或 Postgres)并添加适当的驱动程序作为依赖项。

【讨论】:

我已经更新了 pom.是的,不存在 H2 依赖项我尝试了 mvn - 之后进行全新安装,但仍然是同样的问题。 在做一些研究时,我得到了这个链接 Git 链接。但我无法正确理解.. github.com/jhipster/generator-jhipster/issues/8693 该问题中讨论的问题特定于基于 Debian 的 Linux。您使用的是 Windows,所以它不相关【参考方案2】:

在 Eclipse 中转到 Windows->Preferences->Java->Installed JREs 并更改 jdk 主文件夹的路径

【讨论】:

【参考方案3】:

将 jar 插件更新到 3.1.1 立即解决了问题:

<properties>
  <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
</properties>

https://github.com/spring-projects/spring-boot/issues/16846#issuecomment-492792506

【讨论】:

以上是关于Spring Boot 无法执行目标 org.apache.maven.plugins:maven-surefire-plugin:2.22.1:test的主要内容,如果未能解决你的问题,请参考以下文章

未能执行目标 org.springframework.boot:spring-boot-..:2.1.8。运行时发生异常。空值

无法在 Spring Boot 中将 Flyway 迁移与 postgresQL 连接起来

未能执行目标 org.springframework.boot:spring-boot-maven-plugin:2.2.5.RELEASE:run (default-cli)

Spring Boot JMS 侦听器:无法刷新目标的 JMS 连接

Spring Boot with docker 无法找到请求目标错误的有效认证路径

执行目标 org.springframework.boot:spring-boot-maven-plugin:2.4.4:repackage failed: 找不到主类的 default-cli