programing

JHipster 6.0.1: 리퀴베이스 태스크 실패

bestcode 2022. 11. 17. 21:12
반응형

JHipster 6.0.1: 리퀴베이스 태스크 실패

샘플 블로그 애플리케이션(http://gist.asciidoctor.org/?github-mraible/jhipster5-demo//README.adoc)에 따라 JHipster v6.0.1을 사용해 보겠습니다.MariaDB를 개발 및 생산 중인 빌드 도구로 Gradle을 선택하면 액화 작용이 실패합니다.

  • 개발 환경 설치:

    • 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, cd를 입력하고 다음과 같이 입력합니다.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 open에서도 같은 결과를 얻을 수 있습니다.SUSE 15.단, Maven을 사용하면 액화작용이 잘 됩니다.나만 그런가?왜 그런지 아시는 분?

[JHipster: 6.0.1, JDK11, MariaDB 10.3.14, 노드 v10.15.3, 실 v1.15.2, npm v6.9.0, 그라들 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 버전은...

좋아! 내게 해결책이 있어...

다음과 같이 추가했습니다.+에의 회선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 실패한다스택 트레이스를 켜면 다음 오류가 나타납니다.

: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에서 리퀴베이스 작업을 성공적으로 테스트했습니다.

나만 이걸 알아챈 거야?JHIP스터 팀은 이 사실을 몰랐나요?JHipster/Gradle/liquibase 구성이 테스트되지 않았습니까?내 수정이 완전한 해결책입니까?

JHipster/Gradle/liquibase 구성에 대한 경험이 있는 사람이 통찰력/확인을 제공할 수 있습니까?

같은 문제가 발생하여 "cacheProvider no" 캐시를 사용하지 않도록 설정했습니다.앱을 실행하면 2차 캐시에 또 다른 문제가 발생하는데, DB 드라이버 때문인 것 같습니다.도와줬으면 좋겠다!

언급URL : https://stackoverflow.com/questions/56159063/jhipster-6-0-1-liquibase-tasks-fail

반응형