尝试解决1:看到这个着实有点懵,想着是不是build的时候没有加载出来,于是删除项目里的build文件夹,然后重新build,但问题依然没有解决。
尝试解决2:springboot项目启动有三种方法,分别是:
a)java -jar xx.jar
b)java Application
c)gradle bootRun(表示以本地gradle版本运行)/gradlew bootRun(表示以gradlew wrapper版本运行)
一贯的启动方式都是b方法,这次就是b方法启动不起来,于是我尝试用c方法启动,因为我本地安装了gradle,所以用的gradle bootRun运行,于是项目成功启动了。。但我还是比较习惯用b方法,于是我又尝试用b方法启动,但依然不能启动。。这个时候,我冒出了一个想法,是解决我这次问题的关键。。我用本地gradle,以c方法启动起来,意味着这个过程我都是用的本地gradle,而b方法启动不起来,是不是表明它用到了除本地gradle之外,默认路径下下载的某某某了。于是,我去删除默认路径下下载的包,发现有一个文件被占用,删除不掉。果然,罪魁祸首就是这个删除不掉的包。于是打开资源管理器-->性能-->打开资源监视器,搜索发现这个删除不掉的果然在进程中,于是我手动结束了这个进程;再删除了一下项目里的build文件夹,打开项目重新build,于是,项目以b方法启动起来了!!!哈哈哈,脑子是一个好用的东西,还是要学会更好地使用她,耶!
16:05:03.263 [main] DEBUG org.springframework.boot.diagnostics.FailureAnalyzers - FailureAnalyzer org.springframework.boot.
liquibase
.
Liquibase
Change
log
MissingFailureAnalyzer@7ec3394b failed
java.lang.NoClassDefFoundError:
liquibase
/
exception
/Chan
具体的错误如下
liquibase
.
exception
.Lock
Exception
: Could not acquire
change
log
lock. Currently locked by 10.45.12.87 (10.45.12.87) since 9/3/19 6:24 PM at
liquibase
.lockser...
try {
// create a player to play the media specified in the URL
URL mediaURL = new File(“Alarm.mp3”).toURL()
Player mediaPlayer = Manager.createRealizedPlayer(mediaURL)
Component video = mediaPlayer.getVisualComponent()
Component controls = mediaPlayer.getControlPanelComponent()
setLayout(new BorderLayout())
if (video != null) {
add(video, BorderLayout.CENTER) // add video component
if (controls != null) {
add(controls, BorderLayout.SOUTH) // add controls
mediaPlayer.start() // start playing the media clip
} catch (
Exception
iO
Exception
) {
System.err.println("Error reading from the source")
记录一下遇到的异常:
org.springframework.beans.factory.BeanCreation
Exception
: Error creating bean with name '
liquibase
' defined in class path resource [org/springframework/boot/autoconfigure/
liquibase
/
Liquibase
AutoConfiguration$Liquiba
解决
方法
因为之前一直关注ClassNotFound
Exception
异常,一直在寻找是哪个类不存在,后来发现下面一句:
YAML
Exception
: java.nio.charset.MalformedInput
Exception
: Input length = 1
表示charset字符转换问题,而且是在yml文件中
解决
:yml配置问价中存在中文编码异常(删除中文即可
解决
)
此篇重点是SpringBoot自动装配
Liquibase
时,如何实现把
change
log
文件外置到jar包外。报错Specifying files by absolute path was removed in
Liquibase
4.0. Please use a relative path or add '/' to the classpath parameter.
前言Spring boot本身支持
liquibase
,所以pom文件中添加依赖后,application.yml/application.properties定制配置信息即可,不配置使用spring boot默认配置,这样就可以用了,项目启动的时候就会去运行指定目录下的数据库更改文件,使用中还是踩了两个坑,在此记录下来。配置照例还是先把配置过程 写下来
添加pom依赖
<!-- 未指定版本,默认用了
org.springframework.beans.factory.BeanCreation
Exception
: Error creating bean with name '
liquibase
' defined in class path resource [org/springframework/boot/autoconfigure/
liquibase
/
Liquibase
AutoConfiguration$
Liquibase
Configuration.class]: Invocation of init
"D:\Program Files\Java\jdk-13.0.2\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-java