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