Using maven, i have liquibase-core dependency in my pom.xml:
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<version>4.27.0</version>
</dependency>
When I execute
CommandScope updateCommand = new CommandScope("update")
.addArgumentValue("driver", String.valueOf(map.get("driver")))
.addArgumentValue("url", String.valueOf(map.get("liquibase.command.url")))
.addArgumentValue("username", String.valueOf(map.get("liquibase.command.username")))
.addArgumentValue("password", String.valueOf(map.get("liquibase.command.password")))
.addArgumentValue(UpdateCommandStep.CHANGELOG_FILE_ARG, LIQUIBASE_CHANGELOG_FILE)
.addArgumentValue(UpdateCommandStep.CONTEXTS_ARG, String.valueOf(map.get("contexts")));
updateCommand.execute();
I have the following error on updateCommand.execute()
liquibase.servicelocator.null Cannot load service
java.util.ServiceConfigurationError: liquibase.parser.ChangeLogParser: com.datical.liquibase.ext.parser.ProFormattedSqlChangeLogParser Unable to get public no-arg constructor
at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:581)
at java.base/java.util.ServiceLoader.getConstructor(ServiceLoader.java:672)
at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1232)
at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1264)
at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1299)
at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1384)
at liquibase.servicelocator.StandardServiceLocator.findInstances(StandardServiceLocator.java:22)
at liquibase.parser.ChangeLogParserFactory.<init>(ChangeLogParserFactory.java:39)
at liquibase.parser.ChangeLogParserFactory.getInstance(ChangeLogParserFactory.java:25)
at liquibase.command.core.helpers.DatabaseChangelogCommandStep.getDatabaseChangeLog(DatabaseChangelogCommandStep.java:124)
at liquibase.command.core.helpers.DatabaseChangelogCommandStep.run(DatabaseChangelogCommandStep.java:87)
at liquibase.command.CommandScope.execute(CommandScope.java:219)
It seems like there is a no-arg constructor missing in the class liquibase.parser.ChangeLogParser.
Is there a missing dependency or configuration that I can add to fix this error?