JHipster 6.0.1: задачи Liquibase не выполняются

Просто попробуйте JHipster v6.0.1, следуя образцу приложения Blog (http://gist.asciidoctor.org/?github-mraible/jhipster5-demo//README.adoc). При выборе Gradle в качестве инструмента сборки с MariaDB в разработке и производстве задачи Liquibase не выполняются.

  • Устанавливаем среду разработки:

    • Установите MariaDB 10.3
    • Установите JDK 11 и соответствующим образом установите переменные/путь окружения.
    • Установить узел (10.15.3) => npm v6.4.1
    • Установить пряжу (1.15.2)
    • Запустите оболочку и в командной строке:
      • Установите Yoeman: npm install -g yo
      • Установите JHipster: npm install -g generator-jhipster
  • Создайте новый каталог, blog, перейдите в него и введите: jhipster

  • Выбрал почти те же параметры, что и в руководстве, указанном выше, с MariaDB как в разработке, так и в производстве, и с использованием Gradle в качестве инструмента сборки.
  • Запускаем сервер: ./gradlew
  • Беги: yarn start

Все отлично работает. Таблицы базы данных создаются и заполняются, как и ожидалось, и веб-приложение работает хорошо.

Теперь, когда я останавливаю сервер и пытаюсь запустить любую задачу liquibase, я получаю ту же ошибку. Например, запуск: ./gradlew liquibaseClearChecksums в командной строке приводит к следующему результату:

> Task :liquibaseClearChecksums FAILED

During the build, one or more dependencies that were declared without a version failed to resolve:
    org.mariadb.jdbc:mariadb-java-client:

Did you forget to apply the io.spring.dependency-management plugin to the blog project?


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':liquibaseClearChecksums'.
> Could not resolve all files for configuration ':liquibaseRuntime'.
   > Could not find org.mariadb.jdbc:mariadb-java-client:.
     Required by:
         project :

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
1 actionable task: 1 executed

Stacktrace дает немного больше информации:

Could not resolve all files for configuration ':liquibaseRuntime'.
> Could not find org.mariadb.jdbc:mariadb-java-client:.
  Required by:
      project :

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':liquibaseClearChecksums'.
Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':liquibaseRuntime'.
Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: 
Could not find org.mariadb.jdbc:mariadb-java-client:.
Required by:
    project :

Я получаю тот же результат в Windows 10 и Linux openSUSE 15. Однако при использовании Maven задачи liquibase работают нормально. Это только я? У кого-нибудь есть идеи, почему?

[JHipster: 6.0.1; JDK11; МарияДБ 10.3.14; узел v10.15.3; Пряжа v1.15.2; нпм v6.9.0; Грейдл v5.4.1]

PS: Удалил JHipster 6.0.1, затем установил v5.8.2 (npm install -g [email protected]), повторил процесс, описанный выше, и задачи Liquibase Gradle работают! Я думаю, что это ошибка нового развертывания JHipster 6.0.1... Должен ли я/как мне сообщить об этом команде разработчиков? Есть идеи для временного исправления?

Также уделил время сравнению файлов build.gradle из двух версий (5.8.2 и 6.0.1); они совершенно разные, и ничто не кажется мне явно неправильным, за исключением того, что версия 5.8.2 напрямую ссылается на плагин io.spring.dependency-management, а версия 6.0.1 - нет...

Gradle за прокси-сервером
Gradle за прокси-сервером
Создайте проект Gradle под сетевым прокси.
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
В этой статье блога мы проведем вас через процесс установки Gradle на Ubuntu 22.04, интеграции его с Jenkins и создания задания Gradle. Мы...
2
0
1 066
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

У меня была такая же проблема, и я отключил кеш «cacheProvider no». Когда вы запускаете приложение, возникает еще одна проблема с кешем второго уровня, и я думаю, что это из-за драйвера БД. Я надеюсь помочь вам!

Марко! Спасибо за ответ/предложение. Я снова повторил весь проект, на этот раз на вопрос: «Хотите ли вы использовать абстракцию кэша Spring?», я ответил «Нет» (тем самым отключив кеш 2-го уровня). После полной сборки/запуска (без проблем) задачи Liquibase по-прежнему не выполняются по той же причине, что и в моем посте, на всех платформах. (Хорошая идея с драйвером БД, но в моем случае я не могу представить, как драйвер БД повлияет на вещи, когда все работает с Maven. Я подозреваю, что в конфигурации Gradle чего-то не хватает...)

Mike Smith 16.05.2019 15:45
Ответ принят как подходящий

Хорошо! У меня есть решение...

Я добавил следующие + строки в build.gradle файл (начиная со строки 28):

    id "org.sonarqube" version "2.7"
+   id "io.spring.dependency-management" version "1.0.7.RELEASE"
    //jhipster-needle-gradle-plugins - JHipster will add additional gradle plugins here
  }

  sourceCompatibility=1.8
  targetCompatibility=1.8
  assert System.properties["java.specification.version"] == "1.8" || "11" || "12"

  apply plugin: "org.springframework.boot"
+ apply plugin: "io.spring.dependency-management"
  apply plugin: "propdeps"

Я выбрал io.spring.dependency-management версию 1.0.7, потому что страница плагина Gradle указывает ее как последнюю версию (на момент написания).

Теперь я могу бежать ./gradlew liquibaseClearChecksums с успешным результатом.

Запуск ./gradlew liquibaseDiffChangeLog однако терпит неудачу. При включении stacktrace получаю следующую ошибку:

:liquibaseDiffChangeLog FAILED
liquibase-plugin: Running the 'main' activity...
Starting Liquibase at Tue, 21 May 2019 07:16:59 PDT (version 3.6.3 built at 2019-01-29 11:34:48)
Unexpected error running Liquibase: The option --referenceUrl is required.
liquibase.exception.CommandLineParsingException: The option --referenceUrl is required.
    at liquibase.integration.commandline.Main.createReferenceDatabaseFromCommandParams(Main.java:1419)
    at liquibase.integration.commandline.Main.doMigration(Main.java:1026)
    at liquibase.integration.commandline.Main.run(Main.java:199)
    at liquibase.integration.commandline.Main.main(Main.java:137)

Чтобы решить эту проблему, я копирую/вставляю параметр liquibase/activities/diffLogreferenceUrl в раздел liquibase/activities/main (см. следующую строку +):

liquibase {
  activities {
    main {
      driver "org.mariadb.jdbc.Driver"
      url "jdbc:mariadb://localhost:3306/blog"
      username "<username>"
      password "<password>"
      changeLogFile "src/main/resources/config/liquibase/master.xml"
      defaultSchemaName ""
      logLevel "debug"
      classpath "src/main/resources/"
+     referenceUrl "hibernate:spring:org.jhipster.blog.domain?dialect=org.hibernate.dialect.MySQL5InnoDBDialect&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy"
    }

Теперь я могу бежать ./gradlew liquibaseDiffChangeLog с успешным результатом. С этими изменениями я успешно протестировал обе задачи Liquibase в Linux и Windows 10.

Я один это замечаю? Неужели команда JHipster этого не заметила? Конфигурация JHipster/Gradle/liquibase не тестируется? Является ли мое исправление полным решением?

Может ли кто-нибудь, имеющий опыт работы с конфигурацией JHipster/Gradle/liquibase, дать некоторое представление/подтверждение...?

Просто продолжаю: новая версия JHipster (6.1.0) по-прежнему страдает от этой проблемы!

Mike Smith 11.06.2019 21:08

Новая версия JHipster (6.1.1) по-прежнему страдает от этой проблемы! Задачи JHipster/Gradle/MariaDB/liquibase не поддерживаются/не тестируются в JHipster? Я один это замечаю? PS: Вышеупомянутые изменения все еще работают, и с последней версией io.spring.dependency-management (1.0.8.RELEASE) @PascalGrimaud

Mike Smith 22.06.2019 17:52

JHipster 6.1.2 по-прежнему страдает от этой проблемы. @паскаль-гримо

Mike Smith 26.06.2019 23:00

JHipster 6.2.0 по-прежнему страдает от этой проблемы. @pascal-grimaud (приведенное выше решение все еще решает эту проблему.)

Mike Smith 07.08.2019 22:15

вы можете поднять проблему в соответствующем git-repo github.com/jhipster вместо того, чтобы комментировать здесь

N4ppeL 04.09.2019 16:51

JHipster 6.3.0 по-прежнему страдает от этой проблемы. @pascal-grimaud (приведенное выше решение все еще решает эту проблему.)

Mike Smith 16.09.2019 00:15

JHipster 6.3.1 по-прежнему страдает от этой проблемы. @pascal-grimaud (приведенное выше решение все еще решает эту проблему.)

Mike Smith 21.09.2019 00:44

Хорошо! Интересная разработка... Я только что протестировал новую версию v6.4.1, и liquibaseClearChecksumsпоявляется работает "из коробки" (т.е. вам не нужно добавлять никаких ссылок на io.spring.dependency-management), ноliquibaseDiffChangeLog ВСЕ ЕЩЕ требует копирования/ вставьте параметр liquibase/activities/diffLogreferenceUrl в раздел liquibase/activities/main.

Mike Smith 16.10.2019 23:28

Другие вопросы по теме