В настоящее время я обновляю свои интеграционные тесты с Java 8 до Java 10. Однако, когда я запускаю какой-либо из своих интеграционных тестов, когда для JAVA_HOME установлено значение Java 10, я получаю следующую ошибку при запуске обновления Liquibase-maven-plugin:
[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.6.2:update (update-schema) on project econiq-rest-it: Execution update-schema of goal org.liquibase:liquibase-maven-plugin:3.6.2:update failed: A required class was missing while executing org.liquibase:liquibase-maven-plugin:3.6.2:update: java/sql/Driver
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>org.liquibase:liquibase-maven-plugin:3.6.2
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/C:/Users/sryan/.m2/repository/org/liquibase/liquibase-maven-plugin/3.6.2/liquibase-maven-plugin-3.6.2.jar
[ERROR] urls[1] = file:/C:/Users/sryan/.m2/repository/com/econiq/db/econiq-db-h2/4.0.0-SNAPSHOT/econiq-db-h2-4.0.0-SNAPSHOT.jar
[ERROR] urls[2] = file:/C:/Users/sryan/.m2/repository/com/econiq/db/econiq-db-common/4.0.0-SNAPSHOT/econiq-db-common-4.0.0-SNAPSHOT.jar
[ERROR] urls[3] = file:/C:/Users/sryan/.m2/repository/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar
[ERROR] urls[4] = file:/C:/Users/sryan/.m2/repository/org/liquibase/liquibase-core/3.6.2/liquibase-core-3.6.2.jar
[ERROR] urls[5] = file:/C:/Users/sryan/.m2/repository/org/yaml/snakeyaml/1.18/snakeyaml-1.18.jar
[ERROR] urls[6] = file:/C:/Users/sryan/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar
[ERROR] urls[7] = file:/C:/Users/sryan/.m2/repository/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import from realm ClassRealm[project>com.econiq.rest:econiq-rest-it:4.0.0-SNAPSHOT, parent: ClassRealm[maven.api, parent: null]]]
[ERROR]
[ERROR] -----------------------------------------------------
[ERROR] : java.sql.Driver
Я знаю, что Liquibase работает с Java 10, так как у меня также есть отдельный pom.xml, который запускает автономный сервер WildFly 14 и где я запускаю любую обновленную схему с помощью плагина liquibase-maven-plugin, и он отлично работает. Совершенно запутался, почему, когда я запускаю его в качестве интеграционного теста, он не может найти java.sql.Driver.
Я использую последнюю версию Liquibase-maven-plugin 3.6.2, но я вижу, что она использует более старую версию plexus-utils, поэтому мне интересно, не вызывают ли проблемы старые plexus-utils. У кого-нибудь еще было подобное при использовании Liquibase в Java 10?
К сожалению, 3.6.2 - это последний плагин Liquibase-maven-plugin. На данный момент у меня есть обходной путь, используя плагин exec-maven-plugin для внешнего вызова Liquibase для создания базы данных, необходимой для интеграционных тестов. Это работает до тех пор, пока я не выясню, какая зависимая банка вызывает проблему, поскольку я не верю, что проблема связана с Liquibase.




В Java 10 плагину liquibase-maven может потребоваться обновление, потому что он не может получить доступ к java.sql.Driver, который является другим модулем java ...