Quarkus Gradle Test не проходит - PullRequest
       13

Quarkus Gradle Test не проходит

1 голос
/ 23 апреля 2019

Я пытаюсь запустить простой проект gradle типа 'Getting-Start' с Quarkus, и мой модульный тест каждый раз терпит неудачу с этой ошибкой

Caused by: io.quarkus.bootstrap.BootstrapException: Failed to locate project pom.xml for C:\Users\myuser\IdeaProjects\myproj\build\classes\java\main

Здесь следовали инструкциям https://quarkus.io/guides/gradle-tooling Любые предложенияили мысли о том, что происходит?

Подробности версии Gradle

Gradle 5.4

Build time:   2019-04-16 02:44:16 UTC
Revision:     a4f3f91a30d4e36d82cc7592c4a0726df52aba0d

Kotlin:       1.3.21
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM:          11.0.2 (Oracle Corporation 11.0.2+9)
OS:           Windows 10 10.0 amd64

1 Ответ

1 голос
/ 19 июля 2019

кстати.проблема все еще открыта (текущая версия 0.19.1), а проблема (2307) все еще не решена.

Причина в том, что @QuarkusTest указывает на QuarkusTestExtension, который в BootstrapClassLoaderFactory.newDeploymentClassLoader пытается разрешить локальнуюпроект с Maven.

У нас есть варианты:

  • ждать официального решения (см. проблему)
  • написать собственное расширение, переопределяющее BootstrapClassLoaderFactory, чтобы «понять» проект gradleструктура
  • применить обходной путь (на данный момент), то есть сгенерировать pom.xml из сборки Gradle

Обойти

в build.grade:

plugins {
    id 'java'
    id 'io.quarkus' version '0.19.1'
    // ...
    id 'maven-publish'
}
// ...
publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
            // augment your pom here if necessary
        }
    }
}
// ...
task createPom(type: Copy) {
    description 'This is workaround to generate pom.xml, needed for @QuarkusTest tests.'
    dependsOn('generatePomFileForMavenJavaPublication')
    from "$buildDir/publications/mavenJava/pom-default.xml"
    into '.'
    rename('pom-default.xml', 'pom.xml')
}

Примечание:

  • используйте плагин 'maven-publish', а не устаревший 'maven'.
  • не забудьте применить ./gradlew createPom к изменениям зависимостей
...