Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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 为什么可以';t my RCP应用程序检测已部署Flyway/Spring项目中的迁移文件_Java_Spring_Hibernate_Eclipse Rcp_Flyway - Fatal编程技术网

Java 为什么可以';t my RCP应用程序检测已部署Flyway/Spring项目中的迁移文件

Java 为什么可以';t my RCP应用程序检测已部署Flyway/Spring项目中的迁移文件,java,spring,hibernate,eclipse-rcp,flyway,Java,Spring,Hibernate,Eclipse Rcp,Flyway,我有一个Spring/H2/Hibernate项目,正在尝试集成flyway。该项目是使用maven构建的,并创建一个Jar,然后将其包含在访问数据库的其他应用程序中 我的问题是,当我测试spring项目flyway工作正常并创建模式时,但是当我在另一个项目中部署lib时,它似乎找不到迁移脚本。我已经检查过了,它们在jar文件中 我的spring配置: <bean id="flyway_database_1" class="org.flywaydb.core.Flyway" init-me

我有一个Spring/H2/Hibernate项目,正在尝试集成flyway。该项目是使用maven构建的,并创建一个Jar,然后将其包含在访问数据库的其他应用程序中

我的问题是,当我测试spring项目flyway工作正常并创建模式时,但是当我在另一个项目中部署lib时,它似乎找不到迁移脚本。我已经检查过了,它们在jar文件中

我的spring配置:

<bean id="flyway_database_1" class="org.flywaydb.core.Flyway" init-method="migrate">
    <property name="dataSource" ref="dataSource1" />
    <property name="locations" value="com.domain" />
    <property name="sqlMigrationPrefix" value="DATABASE_1_V" />
</bean>

<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">
    <property name="driverClassName" value="${database.1.driver}" />
    <property name="url" value="${database.1.url}" />
</bean>

我的应用程序在类路径中找到了Spring上下文XML文件和属性文件,但flyway似乎没有找到sql文件

对于我的位置,我尝试了“com.domain”、“com/domain”、“classpath:/”、“classpath:/database1/migration/”

所有这些都在Spring项目中工作,然后在包含jar时检测不到文件

你知道为什么会这样吗

编辑:我想这可能是因为我在RCP应用程序中包含了jar,也许FlyWay检测文件的方式与Spring不同

编辑
您使用的
flyway core
的版本是什么?flyway中有一个从jar文件扫描sql脚本的错误。详情请参阅。此问题已在4.1版本中修复,因此您可以通过添加最新版本的
flyway core
进行尝试

<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-core</artifactId>
    <version>4.2.0</version>
</dependency>
编辑


这是一个错误,需要在Flyway进行修复。目前,您可以在插件项目中创建db/migration文件夹,并将迁移sql文件保存在该文件夹中。

在不区分大小写的平台(例如Windows)中开发时,您是否部署到区分大小写的平台(例如Linux)你有日志吗?@Michael没有,它们都在同一个eclipse工作区中运行。@Ueli没有,我不知道如何获取flyway日志,我遇到的第一个错误是当应用程序试图访问一个不存在的DB表时。Flyway已经生成了它的审计表,但是没有输入任何条目,所以它已经连接到嵌入式数据库,所以我知道spring配置正在工作。似乎找不到SQL文件。只是猜测:com/domain而不是com.domain?文档总是使用“/”作为目录分隔符。@Link19请查看我的编辑答案,然后使用filesystem:prefix尝试位置的完整路径。是的,这确实有效,这就是我目前解决问题的方法,但是我不想这样使用它。这是否给了您一个提示,或者您建议这是一个解决方案?我已经包括了一个项目,它重现了我原来问题中的错误。啊,太遗憾了,我在这个问题上押了很多赌注,希望我做错了什么。为什么你撤销了先前接受的选择答案?这是正确的答案。我知道你在悬赏上做了很多回购,但无论如何你都会失去它,因为那是不可逆转的。
<property name="locations" value="filesystem:C:/project/spring-flyway/src/main/resources/db/migration" />