Changelog with includeAll will not find child changelogs in Spring Boot's executable JAR

Description

Consider a Spring Boot project with a db/changelog.xml containing the includeAll element. If the project is packaged as an executable JAR, it will not be able find the related changelog files.

The resulting part of the log for liquibase

Note that the specific changelog files are not run.

However, when the files are explicitly mentioned, they will be found:

Note that the specific changelog files are now run.

The related StackOverflow issue: http://stackoverflow.com/questions/40729071/executable-jar-unable-to-find-liquibase-db-changelog-xml#answer-40731113

The entire project can be found here: https://github.com/robert-bor/executable-jar-with-liquibase

Environment

Mac OS X 10.11.6

Activity

Show:

Nathan Voxland January 22, 2018 at 6:07 AM

Fred Puistaja May 2, 2017 at 8:01 AM

Same problem for me using Spring Boot v1.3.8 and Liquibase v3.5.3.
I downgraded to Liquibase 3.4.2 and everything works.

My changes are inside core.jar and I run application.jar

Robert Bor February 22, 2017 at 4:28 AM

@Einar - reading both of your linked issues, it certainly looks like they all have the same cause.

Einar Pehrson February 21, 2017 at 6:01 PM

I believe this is the same bug as and CORE-2876. See my comment on the former issue for more details.

Fixed

Details

Reporter

Components

Fix versions

Affects versions

Priority

Created November 22, 2016 at 6:45 PM
Updated January 22, 2018 at 6:07 AM
Resolved January 22, 2018 at 6:07 AM