mapstruct-examples icon indicating copy to clipboard operation
mapstruct-examples copied to clipboard

Quarkus Gradle example?

Open danelowe opened this issue 5 years ago • 1 comments

I tried converting the mapstruct-quarkus example directly to gradle.

https://github.com/danelowe/mapstruct-quarkus-gradle

Running ./gradlew quarkusDev results in an error when trying to access the server (http://localhost:8080/)

Caused by: javax.enterprise.inject.UnsatisfiedResolutionException: Unsatisfied dependency for type org.mapstruct.example.quarkus.mapper.PersonMapper and qualifiers [@Default]
        - java member: org.mapstruct.example.quarkus.PersonResource#personMapper
        - declared on CLASS bean [types=[org.mapstruct.example.quarkus.PersonResource, java.lang.Object], qualifiers=[@Default, @Any], target=org.mapstruct.example.quarkus.PersonResource]
        at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:487)
        at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:362)
        at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:226)
        ... 14 more

Similarly cannot build due to same error.

I have no idea if I'm using it wrong, or if there is a bug with Mapstruct, or with Quarkus, or if some workaround is necessary to get it working with Gradle.

I would like to use Mapstruct in a project with Quarkus/Gradle/Kotlin, but kapt seems to break Quarkus CDI, and I can't get mapstruct to run in Quarkus CDI with Gradle

danelowe avatar Aug 05 '20 23:08 danelowe

If I change compileOnly 'org.mapstruct:mapstruct-processor:1.4.0.Beta3' to annotationProcessor 'org.mapstruct:mapstruct-processor:1.4.0.Beta3', it works as expected.

Unfortunately, Kapt seems to break Quarkus CDI entirely, and I'm intending to annotate Kotlin classes.

danelowe avatar Aug 05 '20 23:08 danelowe