mapstruct / mapstruct-examples

Examples for using MapStruct
Other
1.26k stars 511 forks source link

Quarkus Gradle example? #86

Open danelowe opened 4 years ago

danelowe commented 4 years ago

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 commented 4 years ago

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.