java - 通过 maven 和 spring 使用 liquibase 文件路径

标签 java spring maven liquibase

我在 spring 上下文中使用以下 beean 更新方案和初始数据:

<bean id="liquibase" class="liquibase.integration.spring.SpringLiquibase">
    <property name="dataSource" ref="dataSource" />
    <property name="changeLog" value="classpath:db/changelog/db.changelog-master.xml" />
    <property name="dropFirst" value="true" />
</bean>

我还使用 Maven liquibase 插件生成 sql 脚本,以查看创建了哪些表等。

 <plugin>
                <groupId>org.liquibase</groupId>
                <artifactId>liquibase-maven-plugin</artifactId>
                <version>2.0.5</version>
                <configuration>
                    <!--mvn initialize liquibase:updateSQL-->
                    <propertyFile>src/main/resources/db/config/liquibase-gensql-data-access.properties</propertyFile>
                    <changeLogFile>src/main/resources/db/changelog/db.changelog-master.xml</changeLogFile>

                </configuration>
           </plugin>

db.changelog-master.xml 文件包含子 liquibase 更改日志文件。问题,如何从大师那里引用它们。当我使用 Spring 时,我必须通过类路径使用以下路径:

<include file="classpath:/db/changelog/db.changelog-1.0.xml"/>

使用Maven时,路径为:

<include file="src/main/resources/db/changelog/db.changelog-1.0.xml"/>

我希望这两种情况都使用相同的配置。如何存档?

最佳答案

我评论了伊戈尔的回答,他的解决方案似乎不起作用。

为了解决这个问题,我刚刚向 Liquibase 推送了一个补丁:https://github.com/liquibase/liquibase/pull/187 .这应该在 3.0.6-SNAPSHOT 中合并,因此很快在 3.0.6 中可用。

通过此更改,您现在可以使用以下附加行配置 SpringLiquibase:

<property name="ignoringClasspathPrefix" value="true" />

可以在此处找到另一个需要此更改的示例/用例:https://github.com/LateralThoughts/spring-liquibase-extensions .

关于java - 通过 maven 和 spring 使用 liquibase 文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16605099/

相关文章:

java - spring @Value 不从 application.properties 文件加载值

java - 在 Spring Boot 应用程序中未针对 hibernate 和 spring 过滤 Log4j2 日志级别

java - 将 Maven 输出发送到 Eclipse 中的文件

macos - M2_HOME 在 OSX 10.10.1 Yosemite 上的 IntelliJ 中不起作用

随父级缩放的 JavaFX 布局

Java 扩展泛型

java - 如何只允许在服务器上创建 1 个 Java 信号量?

Java IO 类 - 文件 IO 的问题

java - Spring MVC 与 AspectJ

Java - 找不到 hibernate.cfg.xml 文件