Quarkus-类型org.eclipse.microfile.jwt的未满足依赖项

Quarkus-类型org.eclipse.microfile.jwt的未满足依赖项,quarkus,Quarkus,我试图为我的一个Quarkus应用程序实现JWT令牌,但不知何故得到了一个异常-类型org.eclipse.microfile.JWT.JsonWebToken和限定符[@Default] 我的Quarkus应用程序相当简单,只有一个rest端点- @Path("/jwt") @RequestScoped public class JWTRestController { @Inject JsonWebToken jwt; @GET() @Path("permi

我试图为我的一个Quarkus应用程序实现JWT令牌,但不知何故得到了一个异常-类型org.eclipse.microfile.JWT.JsonWebToken和限定符[@Default]

我的Quarkus应用程序相当简单,只有一个rest端点-

@Path("/jwt")
@RequestScoped
public class JWTRestController {

    @Inject
    JsonWebToken jwt;

    @GET()
    @Path("permit-all")
    @PermitAll
    @Produces(MediaType.TEXT_PLAIN)
    public String hello(@Context SecurityContext ctx) {
        Principal caller =  ctx.getUserPrincipal();
        String name = caller == null ? "anonymous" : caller.getName();
        String helloReply = String.format("hello + %s, isSecure: %s, authScheme: %s", name, ctx.isSecure(), ctx.getAuthenticationScheme());
        return helloReply;
    }

}
但当我尝试运行quarkus应用程序时-

gradlew quarkusDev
日志堆栈跟踪

> Task :quarkusDev
Port 5005 in use, not starting in debug mode

2020-04-05 15:57:49,789 INFO  [org.jbo.threads] (main) JBoss Threads version 3.0.1.Final
2020-04-05 15:57:50,158 ERROR [io.qua.dev.DevModeMain] (main) Failed to start Quarkus: java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
        [error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type org.eclipse.microprofile.jwt.JsonWebToken and qual
ifiers [@Default]
        - java member: com.jhooq.JWTRestController#jwt
        - declared on CLASS bean [types=[com.jhooq.JWTRestController, java.lang.Object], qualifiers=[@Default, @Any], target=com.jhooq.JWTRestController]
        at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:910)
        at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:232)
        at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:130)
        at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:291)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
plugins {
    id 'java'
    id 'io.quarkus'
}

repositories {
     mavenLocal()
     mavenCentral()
}

dependencies {
    implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")
    implementation 'io.quarkus:quarkus-resteasy'

    testImplementation 'io.quarkus:quarkus-junit5'
    testImplementation 'io.rest-assured:rest-assured'
    testImplementation 'io.quarkus:quarkus-smallrye-jwt'
    testImplementation 'io.quarkus:quarkus-resteasy-jsonb'
    implementation 'org.eclipse.microprofile.jwt:microprofile-jwt-auth-api:1.1.1'
}

group 'com.jhooq'
version '1.0.0-SNAPSHOT'

compileJava {
    options.compilerArgs << '-parameters'
}

java {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}


我真的错过了什么吗

这是我的体形。gradle

> Task :quarkusDev
Port 5005 in use, not starting in debug mode

2020-04-05 15:57:49,789 INFO  [org.jbo.threads] (main) JBoss Threads version 3.0.1.Final
2020-04-05 15:57:50,158 ERROR [io.qua.dev.DevModeMain] (main) Failed to start Quarkus: java.lang.RuntimeException: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
        [error]: Build step io.quarkus.arc.deployment.ArcProcessor#validate threw an exception: javax.enterprise.inject.spi.DeploymentException: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type org.eclipse.microprofile.jwt.JsonWebToken and qual
ifiers [@Default]
        - java member: com.jhooq.JWTRestController#jwt
        - declared on CLASS bean [types=[com.jhooq.JWTRestController, java.lang.Object], qualifiers=[@Default, @Any], target=com.jhooq.JWTRestController]
        at io.quarkus.arc.processor.BeanDeployment.processErrors(BeanDeployment.java:910)
        at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:232)
        at io.quarkus.arc.processor.BeanProcessor.initialize(BeanProcessor.java:130)
        at io.quarkus.arc.deployment.ArcProcessor.validate(ArcProcessor.java:291)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
plugins {
    id 'java'
    id 'io.quarkus'
}

repositories {
     mavenLocal()
     mavenCentral()
}

dependencies {
    implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")
    implementation 'io.quarkus:quarkus-resteasy'

    testImplementation 'io.quarkus:quarkus-junit5'
    testImplementation 'io.rest-assured:rest-assured'
    testImplementation 'io.quarkus:quarkus-smallrye-jwt'
    testImplementation 'io.quarkus:quarkus-resteasy-jsonb'
    implementation 'org.eclipse.microprofile.jwt:microprofile-jwt-auth-api:1.1.1'
}

group 'com.jhooq'
version '1.0.0-SNAPSHOT'

compileJava {
    options.compilerArgs << '-parameters'
}

java {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}


插件{
id‘java’
id'io.quarkus'
}
存储库{
mavenLocal()
mavenCentral()
}
依赖关系{
实现强制平台(${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}”)
实现“io.quarkus:quarkus resteasy”
测试实现“io.quarkus:quarkus-junit5”
测试实施“io.放心:放心”
测试实施“io.quarkus:quarkus smallrye jwt”
测试实现“io.quarkus:quarkus resteasy jsonb”
实现“org.eclipse.microfile.jwt:microfile jwt auth api:1.1.1”
}
“com.jhooq”组
版本“1.0.0-SNAPSHOT”
内贾瓦{
options.compilerArgs问题在于:

testImplementation 'io.quarkus:quarkus-smallrye-jwt'
testImplementation 'io.quarkus:quarkus-resteasy-jsonb'
implementation 'org.eclipse.microprofile.jwt:microprofile-jwt-auth-api:1.1.1'
quarkus smallrye jwt
quarkus resteasy jsonb
依赖项是应用程序的一部分,而不是测试的一部分。它们必须是
实现
,而不是
测试实现


同时,您可以删除
实现'org.eclipse.microfile.jwt:microfile jwt auth api:1.1.1'
,这是由
quarkus smallrye jwt

临时引入的,谢谢Ladicek。这是我犯的一个愚蠢的错误,我看不见。现在在完成建议的更改后,它工作了。