handling dependencies and WAR as classpath


When dealing with maven projects with dependencies that can also contain changesets includeAll is broken and does not scan everything as expected. there are also differences in handling such dependencies between maven plugin and command line.

maven plugin works ok for paths like "db/changesets" it looks in every dependency and in main project too.
command line throws "SAXException: includeAll path db/changesets/ could not be found" for path without leading slash, and with slash it ignores changesets from main app (only sees from dependencies)

anyway - different configuration (leading slash) makes it impossible to use maven and commandline simultaneously as it sees migrations differently and tries to load them twice.

3.2.x, 3.3.x - after resource accessor changes makes it even worse:
maven plugin sees changesets from only one dependency (and not from main app), ignoring other locations
commandline also requires leading slash to find anything, although it finds only migrations from single dependency and not from main app, and without leading slash it does not find anything, but does not report any error.

provided test maven project with two modules as dependencies and one webapp. each one has one changeset in same path: db/changesets/ so running liquibase on webapp project should load 3 changesets (and maven plugin up to 3.1.1 works that way). Feel free to experiment with options (maven plugin version and main changelog)

If any additional information is required please let me know...


windows and linux




Fix versions

Affects versions