JHipster 6.0.1: задачи Liquibase не выполняются - PullRequest
0 голосов
/ 16 мая 2019

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

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

    • Установить 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

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

Теперь, когда я останавливаю сервер и пытаюсь запустить любую задачу в жидкой базе, я получаю ту же ошибку.Например, выполнение: ./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

Трассировка стека дает немного больше информации:

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 задачи с жидкой базой работают нормально.Это только у меня так?У кого-нибудь есть идеи, почему?

[JHipster: 6.0.1;JDK11;MariaDB 10.3.14;Узел v10.15.3;Пряжа v1.15.2;npm v6.9.0;Gradle v5.4.1]

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

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

Ответы [ 2 ]

1 голос
/ 22 мая 2019

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

Я добавил следующие + строки в файл 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 / diffLog referenceUrl в раздел 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 с успешным исходом. С этими изменениями я успешно протестировал обе задачи на базе жидких сред на Linux и Windows 10.

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

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

0 голосов
/ 16 мая 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...