未能执行目标 org.springframework.boot:spring-boot-..:2.1.8。运行时发生异常。空值
Posted
技术标签:
【中文标题】未能执行目标 org.springframework.boot:spring-boot-..:2.1.8。运行时发生异常。空值【英文标题】:Failed to execute goal org.springframework.boot:spring-boot-..:2.1.8. An exception occurred while running. null 【发布时间】:2021-03-02 11:32:58 【问题描述】:我是 SpringMVC 的新手,被困在这里。
我通过 Spring Initializr 创建了一个 Spring Boot 应用程序,然后
创建HomeController
,将其与index.jsp
连接。它正在工作
很好,但是当我添加SearchController
,与search.jsp
连接时,它
现在不工作。在添加SearcController
之前,应用程序是
运行良好,但随后显示:
无法在项目 hplus 上执行目标 ...plugin:2.4.0:run (default-cli):应用程序已完成,退出代码:1
更新:在进行了一些搜索后,我发现我的数据库服务器 没有运行,运行之后,运行我的应用程序 测试,我遇到了这个错误。
访问 DialectResolutionInfo 时不能为空 'hibernate.dialect' 未设置 .
Full Error!
Test set:HplusappApplicationTests
<<< ERROR!
java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
.
pom.xml file ->
<code>
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
https://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.4.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>spring-example</groupId>
<artifactId>myapp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>myapp</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-web</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-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
application.properties ->
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3306/hplus
spring.datasource.username=root
spring.datasource.password=root
【问题讨论】:
不知道为什么会失败(即完全错误或测试失败),无法回答这个问题。 @M. Deinum 我不知道如何找到整体和错误,这就是我正在寻找的。但控制台显示:无法在项目 myapp 上执行目标 org.springframework.boot:spring-boot-maven-plugin:2.4.0:run (default-cli):应用程序以退出代码完成:1 使用调试信息运行或仅在 IDE 中运行。 感谢您的指导,我可以调试并找到完整的错误,我把它贴在上面。 这不是完整的错误。这表明您在没有正确任务的情况下运行。 【参考方案1】:[ERROR] No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1]
它清楚地表明您输入了错误的mvn
命令。 你执行的命令是什么?
我们通常运行mvn clean install
来构建应用程序。
这是Maven commands 的列表,可能会对您有所帮助。
【讨论】:
'hibernate.dialect' not set你必须在属性中添加spring.jpa.properties.hibernate.dialect
。【参考方案2】:
您需要指定 Hibernate 应该使用的 MySQL 方言:
把它放在 application.properties 中:
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
【讨论】:
【参考方案3】:在定义 bean 和你的 pom 文件时似乎有错误,你是否尝试过运行干净的安装,使用
mvn clean instal
命令?如果这仍然不起作用,请尝试查看您的 pom 和 application.properties 文件是否还有一些混合版本?如果这仍然不起作用,请尝试删除您的 .m2 文件并再次运行 mvn clean install。
【讨论】:
【参考方案4】:解决方案 找了两天多,发现是时区问题。
我编辑了 application.properties,第二行 ->
spring.datasource.url=jdbc:mysql://localhost:3306/hplus?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
https://***.com/a/56537473/14623694
它解决了这个问题。
【讨论】:
以上是关于未能执行目标 org.springframework.boot:spring-boot-..:2.1.8。运行时发生异常。空值的主要内容,如果未能解决你的问题,请参考以下文章
未能执行目标... maven-install-plugin ... 无法安装工件...(访问被拒绝)
未能执行目标 org.apache.maven.plugins:maven-enforcer-plugin
未能执行目标 maven-antrun-plugin - GitHub 操作上的连接超时
未能执行目标 org.apache.maven.plugins:maven-resources-plugin:2.5:resources
未能执行目标 org.springframework.boot:spring-boot-..:2.1.8。运行时发生异常。空值