Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在罐子里放液化糖。我如何告诉它通过类路径(也在JAR中)而不是文件名查找更改集?_Java_Scala_Jar_Classpath_Liquibase - Fatal编程技术网

Java 在罐子里放液化糖。我如何告诉它通过类路径(也在JAR中)而不是文件名查找更改集?

Java 在罐子里放液化糖。我如何告诉它通过类路径(也在JAR中)而不是文件名查找更改集?,java,scala,jar,classpath,liquibase,Java,Scala,Jar,Classpath,Liquibase,我在Scala应用程序中使用Liquibase,该应用程序使用sbt assembly打包在JAR中。当使用本地文件路径提供changelog位置时,一切正常。为了只使用JAR进行部署,我希望它查看JAR内部。我该怎么做 当前设置: build.sbt包括作为依赖项的“org.liquibase”%“liquibase核心”%“3.3.5” 运行: val liquibaseChangeLog:String=(来自配置) val liquibase=new liquibase.liquibas

我在Scala应用程序中使用Liquibase,该应用程序使用
sbt assembly
打包在JAR中。当使用本地文件路径提供changelog位置时,一切正常。为了只使用JAR进行部署,我希望它查看JAR内部。我该怎么做

当前设置:

build.sbt
包括
作为依赖项的“org.liquibase”%“liquibase核心”%“3.3.5”

运行:


val liquibaseChangeLog:String=(来自配置)
val liquibase=new liquibase.liquibase(liquibaseChangeLog、resourceAccessor、liquibaseConnection)
liquibase.update(新上下文())

我想将
liquibaseChangeLog
设置为类路径,如
org/my_org/my_project/changelog.xml
,但出现错误:

线程“main”liquibase.Exception.ChangeLogParseException:org/my_org/my_project/changelog.xml中的异常不存在
liquibase.parser.core.xml.XMLChangeLogSAXParser.parsetNode(XMLChangeLogSAXParser.java:100)
parser.core.xml.AbstractChangeLogParser.parse(AbstractChangeLogParser.java:17)


通过查看这个堆栈跟踪中的Liquibase源代码,我发现它明确地需要一个文件。有没有办法查看JAR?

您是否尝试过
classpath:org/my\u org/my\u project/changelog.xml
?我尝试过,谢谢。根据其他SO帖子,这似乎是特定于Spring的,我没有使用它。IDK您当前的resourceAccessor是什么,但是如果您还没有使用它,您可以查看
liquibase.resource.ClassLoaderResourceAccessor