Java – using the liquibase file path through Maven and spring
I use the following bean to update the schema and initial data in the spring context:
<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>
I also use Maven liquid plug-in to generate SQL scripts to view the created tables, etc
<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 files include sub - level update files The question is how to quote them from the owner When I use spring, I must use the following path through classpath:
<include file="classpath:/db/changelog/db.changelog-1.0.xml"/>
When Maven is used, the path is:
<include file="src/main/resources/db/changelog/db.changelog-1.0.xml"/>
I want to set the same configuration for both cases How to archive?
Solution
I comment on Igor's answer. His solution doesn't seem to work
To solve this problem, I just pushed the patch to liquibase: https://github.com/liquibase/liquibase/pull/187. This should be in 3.0 6-snapshot merged, so in 3.0 6 will soon be available
With this change, you can now configure spring liquibase with this additional row:
<property name="ignoringClasspathPrefix" value="true" />
Another example / usecase that requires this change can be found here: https://github.com/LateralThoughts/spring-liquibase-extensions.