簡體   English   中英

Quarkus gradle 測試失敗

[英]Quarkus gradle test fails

我正在嘗試使用 quarkus 運行簡單的“入門”類型的 gradle 項目,但我的單元測試每次都因此錯誤而失敗

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 版本詳細信息

搖籃 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

順便提一句。 問題仍然存在(當前版本 0.19.1),問題(2307)仍未解決。

原因是@QuarkusTest指向QuarkusTestExtension ,它在BootstrapClassLoaderFactory.newDeploymentClassLoader嘗試使用 Maven 解析本地項目。

我們有以下選擇:

  • 等待官方解決方案(見問題)
  • 編寫自己的擴展覆蓋BootstrapClassLoaderFactory以“理解”gradle 項目結構
  • 應用解決方法(暫時),即從 gradle build 生成 pom.xml

解決方法

在 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM