Closed aalmiray closed 5 years ago
It would really be good to get rid of compile
and runtime
. You should use implementation
and runtimeOnly
instead: the compile
and runtime
configurations leak dependencies to downstream consumers, so kill the overall build performance. Details in https://gradle.com/blog/dependency-management-with-gradle-fundamentals/
Yeah we tried that at one point but there are issues for us as importing the project into IntelliJ didn’t setup the class path correctly
There still appear to be issues with this today with the latest versions of IntelliJ and Gradle
I'm not aware of any issue. Just make sure to check "use separate module per source set". Otherwise clearly the setup is incorrect.
@melix @aalmiray I have upgraded the example application on a branch to Gradle 5.3 and your recommendations https://github.com/micronaut-projects/micronaut-examples/tree/gradle53/hello-world-java
The following problems exist:
Provided
scope. This means if I run the Application
class in Intellij it fails with the following exception due to a misconfigured classpath:
14:08:28.181 [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: Error loading bean [io.micronaut.http.server.netty.converters.FileUploadToObjectConverter]: io/micronaut/http/codec/MediaTypeCodecRegistry
io.micronaut.context.exceptions.BeanContextException: Error loading bean [io.micronaut.http.server.netty.converters.FileUploadToObjectConverter]: io/micronaut/http/codec/MediaTypeCodecRegistry
at io.micronaut.context.DefaultBeanContext.lambda$findBeanCandidates$30(DefaultBeanContext.java:1287)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
eclipse
plugin and then run ./gradlew eclipse
and then open the project in Eclipse or Visual Studio Code Java (using code .
) then run the tests the test fails with the error:Stack trace:
org.junit.jupiter.engine.execution.ConditionEvaluationException: Failed to evaluate condition [io.micronaut.test.extensions.junit5.MicronautJunit5Extension]: @MicronautTest used on test but no bean definition for the test present. This error indicates a misconfigured build or IDE. Please add the 'micronaut-inject-java' annotation processor to your test processor path (for Java this is the testAnnotationProcessor scope, for Kotlin kaptTest and for Groovy testCompile). See the documentation for reference: https://micronaut-projects.github.io/micronaut-test/latest/guide/
at org.junit.jupiter.engine.execution.ConditionEvaluator.evaluationException(ConditionEvaluator.java:91)
at org.junit.jupiter.engine.execution.ConditionEvaluator.evaluate(ConditionEvaluator.java:80)
at org.junit.jupiter.engine.execution.ConditionEvaluator.lambda$evaluate$2(ConditionEvaluator.java:66)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
The reason for this error is that the annotation processors are not correctly configured.
None of these problems exist with the previous approach we were using.
How can we get passed these issues and use the approach you recommend?
Hi Graeme, thank you for having a look at this. First I’d like to check if the build works as expected in the command line. My simple test appeared to work but you and your team would be able to tell much better.
Does the output of gradle dependencies
look right to you? If so then Gradle may be working correctly on the command line and we’ll have to look into specific IDE support. If it does not look right then we have to deep dive into gradle dependency management.
Is the test project available?
The test project is on the gradle53 branch https://github.com/micronaut-projects/micronaut-examples/tree/gradle53/hello-world-java
The application works as expected when using gradle run or gradle test
The problems seem to stem from IDE import handling
There is indeed something fishy. Not sure why some dependencies end up in "provided" in IDEA... At least you can run by delegating build/run to Gradle.
@melix Yes that is a nice feature of 2019.1 but it should work without it and it should work in Eclipse which doesn’t have such support
Note that importing the maven build works in all IDEs without problems
I understand, my comment doesn't imply there's no issue. There's something fishy that needs a fix.
@melix would you like me to report Gradle issues for the above? Or do you want to look into it first?
There's indeed something fishy going on. Checked out the gradle53
branch at 5c6228a and imported the project in Intellij (2018.3) and got the following
Notice that:
Provided
scope (there should be 3). 1.0.3
but the build file explicitly sets it to 1.1.0.RC2
.Compile
scope.When resolving dependencies on the command line we get
Using gradle at '/tmp/micronaut-examples/hello-world-java/gradlew' to run buildfile '/tmp/micronaut-examples/hello-world-java/build.gradle':
> Task :dependencies
------------------------------------------------------------
Root project
------------------------------------------------------------
annotationProcessor - Annotation processors and their dependencies for source set 'main'.
+--- io.micronaut:micronaut-inject-java:1.1.0.RC2
| \--- io.micronaut:micronaut-inject:1.1.0.RC2
| +--- javax.inject:javax.inject:1
| +--- io.micronaut:micronaut-core:1.1.0.RC2
| | +--- org.slf4j:slf4j-api:1.7.25
| | +--- org.reactivestreams:reactive-streams:1.0.2
| | \--- com.google.code.findbugs:jsr305:3.0.2
| +--- org.yaml:snakeyaml:1.23
| \--- javax.annotation:javax.annotation-api:1.3.2
+--- io.micronaut:micronaut-validation:1.1.0.RC2
| +--- org.slf4j:slf4j-api:1.7.25
| +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-http:1.1.0.RC2
| | \--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| \--- javax.validation:validation-api:2.0.1.Final
\--- io.micronaut.configuration:micronaut-openapi:1.1.0.RC2
+--- org.slf4j:slf4j-api:1.7.25
+--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
+--- io.micronaut:micronaut-validation:1.1.0.RC2 (*)
+--- io.swagger.core.v3:swagger-core:2.0.4
| +--- javax.xml.bind:jaxb-api:2.3.0
| +--- org.apache.commons:commons-lang3:3.7
| +--- org.slf4j:slf4j-api:1.7.25
| +--- com.fasterxml.jackson.core:jackson-annotations:2.9.5
| +--- com.fasterxml.jackson.core:jackson-databind:2.9.5
| | +--- com.fasterxml.jackson.core:jackson-annotations:2.9.0 -> 2.9.5
| | \--- com.fasterxml.jackson.core:jackson-core:2.9.5
| +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.5
| | +--- org.yaml:snakeyaml:1.18 -> 1.23
| | \--- com.fasterxml.jackson.core:jackson-core:2.9.5
| +--- io.swagger.core.v3:swagger-annotations:2.0.4
| +--- io.swagger.core.v3:swagger-models:2.0.4
| | \--- com.fasterxml.jackson.core:jackson-annotations:2.9.5
| \--- javax.validation:validation-api:1.1.0.Final -> 2.0.1.Final
+--- io.swagger.core.v3:swagger-models:2.0.4 (*)
\--- io.swagger.core.v3:swagger-annotations:2.0.4
apiElements - API elements for main. (n)
No dependencies
archives - Configuration for archive artifacts.
No dependencies
compile - Dependencies for source set 'main' (deprecated, use 'implementation' instead).
No dependencies
compileClasspath - Compile classpath for source set 'main'.
+--- io.micronaut:micronaut-inject-java -> 1.1.0.RC2
| \--- io.micronaut:micronaut-inject:1.1.0.RC2
| +--- javax.inject:javax.inject:1
| +--- io.micronaut:micronaut-core:1.1.0.RC2
| | +--- org.slf4j:slf4j-api:1.7.25
| | +--- org.reactivestreams:reactive-streams:1.0.2
| | \--- com.google.code.findbugs:jsr305:3.0.2
| +--- org.yaml:snakeyaml:1.23
| \--- javax.annotation:javax.annotation-api:1.3.2
+--- io.micronaut:micronaut-bom:1.1.0.RC2
| +--- io.micronaut:micronaut-http-client:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-http-server-netty:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-inject:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-inject-java:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-runtime:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-validation:1.1.0.RC2 (c)
| +--- io.swagger.core.v3:swagger-annotations:2.0.4 (c)
| +--- io.micronaut:micronaut-http-netty:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-websocket:1.1.0.RC2 (c)
| +--- io.netty:netty-handler-proxy:4.1.30.Final (c)
| +--- org.slf4j:slf4j-api:1.7.25 (c)
| +--- io.reactivex.rxjava2:rxjava:2.2.6 (c)
| +--- io.micronaut:micronaut-http-server:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-core:1.1.0.RC2 (c)
| +--- javax.annotation:javax.annotation-api:1.3.2 (c)
| +--- org.yaml:snakeyaml:1.23 (c)
| +--- io.micronaut:micronaut-aop:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-http:1.1.0.RC2 (c)
| +--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (c)
| +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8 (c)
| +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.8 (c)
| +--- javax.cache:cache-api:1.1.0 (c)
| +--- javax.validation:validation-api:2.0.1.Final (c)
| +--- org.reactivestreams:reactive-streams:1.0.2 (c)
| +--- io.micronaut:micronaut-buffer-netty:1.1.0.RC2 (c)
| +--- io.netty:netty-codec-http:4.1.30.Final (c)
| +--- io.netty:netty-handler:4.1.30.Final (c)
| +--- io.netty:netty-codec-socks:4.1.30.Final (c)
| +--- io.netty:netty-transport:4.1.30.Final (c)
| +--- io.micronaut:micronaut-router:1.1.0.RC2 (c)
| +--- com.google.code.findbugs:jsr305:3.0.2 (c)
| +--- com.fasterxml.jackson.core:jackson-core:2.9.8 (c)
| +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8 (c)
| +--- io.netty:netty-buffer:4.1.30.Final (c)
| +--- io.netty:netty-codec:4.1.30.Final (c)
| +--- io.netty:netty-resolver:4.1.30.Final (c)
| \--- io.netty:netty-common:4.1.30.Final (c)
+--- io.swagger.core.v3:swagger-annotations:2.0.4
+--- io.micronaut:micronaut-inject -> 1.1.0.RC2 (*)
+--- io.micronaut:micronaut-validation -> 1.1.0.RC2
| +--- org.slf4j:slf4j-api:1.7.25
| +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-http:1.1.0.RC2
| | \--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| \--- javax.validation:validation-api:2.0.1.Final
+--- io.micronaut:micronaut-runtime -> 1.1.0.RC2
| +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-aop:1.1.0.RC2
| | \--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| +--- javax.validation:validation-api:2.0.1.Final
| +--- javax.cache:cache-api:1.1.0
| +--- com.fasterxml.jackson.core:jackson-databind:2.9.8
| | +--- com.fasterxml.jackson.core:jackson-annotations:2.9.0 -> 2.9.8
| | \--- com.fasterxml.jackson.core:jackson-core:2.9.8
| +--- io.reactivex.rxjava2:rxjava:2.2.6
| | \--- org.reactivestreams:reactive-streams:1.0.2
| +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8
| | +--- com.fasterxml.jackson.core:jackson-core:2.9.8
| | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
| \--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.8
| +--- com.fasterxml.jackson.core:jackson-annotations:2.9.0 -> 2.9.8
| +--- com.fasterxml.jackson.core:jackson-core:2.9.8
| \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
+--- io.micronaut:micronaut-http-client -> 1.1.0.RC2
| +--- org.slf4j:slf4j-api:1.7.25
| +--- io.reactivex.rxjava2:rxjava:2.2.6 (*)
| +--- io.micronaut:micronaut-http-netty:1.1.0.RC2
| | +--- org.slf4j:slf4j-api:1.7.25
| | +--- io.micronaut:micronaut-buffer-netty:1.1.0.RC2
| | | +--- org.slf4j:slf4j-api:1.7.25
| | | +--- io.micronaut:micronaut-core:1.1.0.RC2 (*)
| | | \--- io.netty:netty-buffer:4.1.30.Final
| | | \--- io.netty:netty-common:4.1.30.Final
| | +--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| | +--- io.micronaut:micronaut-websocket:1.1.0.RC2
| | | +--- org.slf4j:slf4j-api:1.7.25
| | | +--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| | | +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| | | +--- io.micronaut:micronaut-aop:1.1.0.RC2 (*)
| | | \--- io.reactivex.rxjava2:rxjava:2.2.6 (*)
| | +--- io.netty:netty-codec-http:4.1.30.Final
| | | \--- io.netty:netty-codec:4.1.30.Final
| | | \--- io.netty:netty-transport:4.1.30.Final
| | | +--- io.netty:netty-buffer:4.1.30.Final (*)
| | | \--- io.netty:netty-resolver:4.1.30.Final
| | | \--- io.netty:netty-common:4.1.30.Final
| | +--- io.reactivex.rxjava2:rxjava:2.2.6 (*)
| | \--- io.netty:netty-handler:4.1.30.Final
| | +--- io.netty:netty-buffer:4.1.30.Final (*)
| | +--- io.netty:netty-transport:4.1.30.Final (*)
| | \--- io.netty:netty-codec:4.1.30.Final (*)
| +--- io.micronaut:micronaut-runtime:1.1.0.RC2 (*)
| +--- io.netty:netty-handler-proxy:4.1.30.Final
| | +--- io.netty:netty-transport:4.1.30.Final (*)
| | +--- io.netty:netty-codec-socks:4.1.30.Final
| | | \--- io.netty:netty-codec:4.1.30.Final (*)
| | \--- io.netty:netty-codec-http:4.1.30.Final (*)
| \--- io.micronaut:micronaut-websocket:1.1.0.RC2 (*)
\--- io.micronaut:micronaut-http-server-netty -> 1.1.0.RC2
+--- org.slf4j:slf4j-api:1.7.25
+--- io.micronaut:micronaut-http-server:1.1.0.RC2
| +--- io.micronaut:micronaut-runtime:1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-router:1.1.0.RC2
| | +--- org.slf4j:slf4j-api:1.7.25
| | +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| | \--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| \--- io.micronaut:micronaut-websocket:1.1.0.RC2 (*)
\--- io.micronaut:micronaut-http-netty:1.1.0.RC2 (*)
compileOnly - Compile only dependencies for source set 'main'.
\--- io.micronaut:micronaut-inject-java FAILED
default - Configuration for default artifacts.
+--- io.micronaut:micronaut-bom:1.1.0.RC2
| +--- io.micronaut:micronaut-http-client:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-http-server-netty:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-inject:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-runtime:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-validation:1.1.0.RC2 (c)
| +--- io.swagger.core.v3:swagger-annotations:2.0.4 (c)
| +--- org.slf4j:slf4j-api:1.7.25 (c)
| +--- io.micronaut:micronaut-http-netty:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-websocket:1.1.0.RC2 (c)
| +--- io.netty:netty-handler-proxy:4.1.30.Final (c)
| +--- io.reactivex.rxjava2:rxjava:2.2.6 (c)
| +--- io.micronaut:micronaut-http-server:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-core:1.1.0.RC2 (c)
| +--- javax.annotation:javax.annotation-api:1.3.2 (c)
| +--- org.yaml:snakeyaml:1.23 (c)
| +--- io.micronaut:micronaut-aop:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-http:1.1.0.RC2 (c)
| +--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (c)
| +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8 (c)
| +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.8 (c)
| +--- javax.cache:cache-api:1.1.0 (c)
| +--- javax.validation:validation-api:2.0.1.Final (c)
| +--- org.reactivestreams:reactive-streams:1.0.2 (c)
| +--- io.micronaut:micronaut-buffer-netty:1.1.0.RC2 (c)
| +--- io.netty:netty-codec-http:4.1.30.Final (c)
| +--- io.netty:netty-handler:4.1.30.Final (c)
| +--- io.netty:netty-codec-socks:4.1.30.Final (c)
| +--- io.netty:netty-transport:4.1.30.Final (c)
| +--- io.micronaut:micronaut-router:1.1.0.RC2 (c)
| +--- com.google.code.findbugs:jsr305:3.0.2 (c)
| +--- com.fasterxml.jackson.core:jackson-core:2.9.8 (c)
| +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8 (c)
| +--- io.netty:netty-buffer:4.1.30.Final (c)
| +--- io.netty:netty-codec:4.1.30.Final (c)
| +--- io.netty:netty-resolver:4.1.30.Final (c)
| \--- io.netty:netty-common:4.1.30.Final (c)
+--- io.swagger.core.v3:swagger-annotations:2.0.4
+--- io.micronaut:micronaut-inject -> 1.1.0.RC2
| +--- javax.inject:javax.inject:1
| +--- io.micronaut:micronaut-core:1.1.0.RC2
| | +--- org.slf4j:slf4j-api:1.7.25
| | +--- org.reactivestreams:reactive-streams:1.0.2
| | \--- com.google.code.findbugs:jsr305:3.0.2
| +--- org.yaml:snakeyaml:1.23
| \--- javax.annotation:javax.annotation-api:1.3.2
+--- io.micronaut:micronaut-validation -> 1.1.0.RC2
| +--- org.slf4j:slf4j-api:1.7.25
| +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-http:1.1.0.RC2
| | \--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| \--- javax.validation:validation-api:2.0.1.Final
+--- io.micronaut:micronaut-runtime -> 1.1.0.RC2
| +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-aop:1.1.0.RC2
| | \--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| +--- javax.validation:validation-api:2.0.1.Final
| +--- javax.cache:cache-api:1.1.0
| +--- com.fasterxml.jackson.core:jackson-databind:2.9.8
| | +--- com.fasterxml.jackson.core:jackson-annotations:2.9.0 -> 2.9.8
| | \--- com.fasterxml.jackson.core:jackson-core:2.9.8
| +--- io.reactivex.rxjava2:rxjava:2.2.6
| | \--- org.reactivestreams:reactive-streams:1.0.2
| +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8
| | +--- com.fasterxml.jackson.core:jackson-core:2.9.8
| | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
| \--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.8
| +--- com.fasterxml.jackson.core:jackson-annotations:2.9.0 -> 2.9.8
| +--- com.fasterxml.jackson.core:jackson-core:2.9.8
| \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
+--- io.micronaut:micronaut-http-client -> 1.1.0.RC2
| +--- org.slf4j:slf4j-api:1.7.25
| +--- io.reactivex.rxjava2:rxjava:2.2.6 (*)
| +--- io.micronaut:micronaut-http-netty:1.1.0.RC2
| | +--- org.slf4j:slf4j-api:1.7.25
| | +--- io.micronaut:micronaut-buffer-netty:1.1.0.RC2
| | | +--- org.slf4j:slf4j-api:1.7.25
| | | +--- io.micronaut:micronaut-core:1.1.0.RC2 (*)
| | | \--- io.netty:netty-buffer:4.1.30.Final
| | | \--- io.netty:netty-common:4.1.30.Final
| | +--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| | +--- io.micronaut:micronaut-websocket:1.1.0.RC2
| | | +--- org.slf4j:slf4j-api:1.7.25
| | | +--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| | | +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| | | +--- io.micronaut:micronaut-aop:1.1.0.RC2 (*)
| | | \--- io.reactivex.rxjava2:rxjava:2.2.6 (*)
| | +--- io.netty:netty-codec-http:4.1.30.Final
| | | \--- io.netty:netty-codec:4.1.30.Final
| | | \--- io.netty:netty-transport:4.1.30.Final
| | | +--- io.netty:netty-buffer:4.1.30.Final (*)
| | | \--- io.netty:netty-resolver:4.1.30.Final
| | | \--- io.netty:netty-common:4.1.30.Final
| | +--- io.reactivex.rxjava2:rxjava:2.2.6 (*)
| | \--- io.netty:netty-handler:4.1.30.Final
| | +--- io.netty:netty-buffer:4.1.30.Final (*)
| | +--- io.netty:netty-transport:4.1.30.Final (*)
| | \--- io.netty:netty-codec:4.1.30.Final (*)
| +--- io.micronaut:micronaut-runtime:1.1.0.RC2 (*)
| +--- io.netty:netty-handler-proxy:4.1.30.Final
| | +--- io.netty:netty-transport:4.1.30.Final (*)
| | +--- io.netty:netty-codec-socks:4.1.30.Final
| | | \--- io.netty:netty-codec:4.1.30.Final (*)
| | \--- io.netty:netty-codec-http:4.1.30.Final (*)
| \--- io.micronaut:micronaut-websocket:1.1.0.RC2 (*)
+--- io.micronaut:micronaut-http-server-netty -> 1.1.0.RC2
| +--- org.slf4j:slf4j-api:1.7.25
| +--- io.micronaut:micronaut-http-server:1.1.0.RC2
| | +--- io.micronaut:micronaut-runtime:1.1.0.RC2 (*)
| | +--- io.micronaut:micronaut-router:1.1.0.RC2
| | | +--- org.slf4j:slf4j-api:1.7.25
| | | +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| | | \--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| | \--- io.micronaut:micronaut-websocket:1.1.0.RC2 (*)
| \--- io.micronaut:micronaut-http-netty:1.1.0.RC2 (*)
\--- ch.qos.logback:logback-classic:1.2.3
+--- ch.qos.logback:logback-core:1.2.3
\--- org.slf4j:slf4j-api:1.7.25
implementation - Implementation only dependencies for source set 'main'. (n)
+--- io.micronaut:micronaut-bom:1.1.0.RC2 (n)
+--- io.swagger.core.v3:swagger-annotations:2.0.4 (n)
+--- io.micronaut:micronaut-inject (n)
+--- io.micronaut:micronaut-validation (n)
+--- io.micronaut:micronaut-runtime (n)
+--- io.micronaut:micronaut-http-client (n)
\--- io.micronaut:micronaut-http-server-netty (n)
runtime - Runtime dependencies for source set 'main' (deprecated, use 'runtimeOnly' instead).
No dependencies
runtimeClasspath - Runtime classpath of source set 'main'.
+--- io.micronaut:micronaut-bom:1.1.0.RC2
| +--- io.micronaut:micronaut-http-client:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-http-server-netty:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-inject:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-runtime:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-validation:1.1.0.RC2 (c)
| +--- io.swagger.core.v3:swagger-annotations:2.0.4 (c)
| +--- org.slf4j:slf4j-api:1.7.25 (c)
| +--- io.micronaut:micronaut-http-netty:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-websocket:1.1.0.RC2 (c)
| +--- io.netty:netty-handler-proxy:4.1.30.Final (c)
| +--- io.reactivex.rxjava2:rxjava:2.2.6 (c)
| +--- io.micronaut:micronaut-http-server:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-core:1.1.0.RC2 (c)
| +--- javax.annotation:javax.annotation-api:1.3.2 (c)
| +--- org.yaml:snakeyaml:1.23 (c)
| +--- io.micronaut:micronaut-aop:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-http:1.1.0.RC2 (c)
| +--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (c)
| +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8 (c)
| +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.8 (c)
| +--- javax.cache:cache-api:1.1.0 (c)
| +--- javax.validation:validation-api:2.0.1.Final (c)
| +--- org.reactivestreams:reactive-streams:1.0.2 (c)
| +--- io.micronaut:micronaut-buffer-netty:1.1.0.RC2 (c)
| +--- io.netty:netty-codec-http:4.1.30.Final (c)
| +--- io.netty:netty-handler:4.1.30.Final (c)
| +--- io.netty:netty-codec-socks:4.1.30.Final (c)
| +--- io.netty:netty-transport:4.1.30.Final (c)
| +--- io.micronaut:micronaut-router:1.1.0.RC2 (c)
| +--- com.google.code.findbugs:jsr305:3.0.2 (c)
| +--- com.fasterxml.jackson.core:jackson-core:2.9.8 (c)
| +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8 (c)
| +--- io.netty:netty-buffer:4.1.30.Final (c)
| +--- io.netty:netty-codec:4.1.30.Final (c)
| +--- io.netty:netty-resolver:4.1.30.Final (c)
| \--- io.netty:netty-common:4.1.30.Final (c)
+--- io.swagger.core.v3:swagger-annotations:2.0.4
+--- io.micronaut:micronaut-inject -> 1.1.0.RC2
| +--- javax.inject:javax.inject:1
| +--- io.micronaut:micronaut-core:1.1.0.RC2
| | +--- org.slf4j:slf4j-api:1.7.25
| | +--- org.reactivestreams:reactive-streams:1.0.2
| | \--- com.google.code.findbugs:jsr305:3.0.2
| +--- org.yaml:snakeyaml:1.23
| \--- javax.annotation:javax.annotation-api:1.3.2
+--- io.micronaut:micronaut-validation -> 1.1.0.RC2
| +--- org.slf4j:slf4j-api:1.7.25
| +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-http:1.1.0.RC2
| | \--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| \--- javax.validation:validation-api:2.0.1.Final
+--- io.micronaut:micronaut-runtime -> 1.1.0.RC2
| +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-aop:1.1.0.RC2
| | \--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| +--- javax.validation:validation-api:2.0.1.Final
| +--- javax.cache:cache-api:1.1.0
| +--- com.fasterxml.jackson.core:jackson-databind:2.9.8
| | +--- com.fasterxml.jackson.core:jackson-annotations:2.9.0 -> 2.9.8
| | \--- com.fasterxml.jackson.core:jackson-core:2.9.8
| +--- io.reactivex.rxjava2:rxjava:2.2.6
| | \--- org.reactivestreams:reactive-streams:1.0.2
| +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8
| | +--- com.fasterxml.jackson.core:jackson-core:2.9.8
| | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
| \--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.8
| +--- com.fasterxml.jackson.core:jackson-annotations:2.9.0 -> 2.9.8
| +--- com.fasterxml.jackson.core:jackson-core:2.9.8
| \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
+--- io.micronaut:micronaut-http-client -> 1.1.0.RC2
| +--- org.slf4j:slf4j-api:1.7.25
| +--- io.reactivex.rxjava2:rxjava:2.2.6 (*)
| +--- io.micronaut:micronaut-http-netty:1.1.0.RC2
| | +--- org.slf4j:slf4j-api:1.7.25
| | +--- io.micronaut:micronaut-buffer-netty:1.1.0.RC2
| | | +--- org.slf4j:slf4j-api:1.7.25
| | | +--- io.micronaut:micronaut-core:1.1.0.RC2 (*)
| | | \--- io.netty:netty-buffer:4.1.30.Final
| | | \--- io.netty:netty-common:4.1.30.Final
| | +--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| | +--- io.micronaut:micronaut-websocket:1.1.0.RC2
| | | +--- org.slf4j:slf4j-api:1.7.25
| | | +--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| | | +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| | | +--- io.micronaut:micronaut-aop:1.1.0.RC2 (*)
| | | \--- io.reactivex.rxjava2:rxjava:2.2.6 (*)
| | +--- io.netty:netty-codec-http:4.1.30.Final
| | | \--- io.netty:netty-codec:4.1.30.Final
| | | \--- io.netty:netty-transport:4.1.30.Final
| | | +--- io.netty:netty-buffer:4.1.30.Final (*)
| | | \--- io.netty:netty-resolver:4.1.30.Final
| | | \--- io.netty:netty-common:4.1.30.Final
| | +--- io.reactivex.rxjava2:rxjava:2.2.6 (*)
| | \--- io.netty:netty-handler:4.1.30.Final
| | +--- io.netty:netty-buffer:4.1.30.Final (*)
| | +--- io.netty:netty-transport:4.1.30.Final (*)
| | \--- io.netty:netty-codec:4.1.30.Final (*)
| +--- io.micronaut:micronaut-runtime:1.1.0.RC2 (*)
| +--- io.netty:netty-handler-proxy:4.1.30.Final
| | +--- io.netty:netty-transport:4.1.30.Final (*)
| | +--- io.netty:netty-codec-socks:4.1.30.Final
| | | \--- io.netty:netty-codec:4.1.30.Final (*)
| | \--- io.netty:netty-codec-http:4.1.30.Final (*)
| \--- io.micronaut:micronaut-websocket:1.1.0.RC2 (*)
+--- io.micronaut:micronaut-http-server-netty -> 1.1.0.RC2
| +--- org.slf4j:slf4j-api:1.7.25
| +--- io.micronaut:micronaut-http-server:1.1.0.RC2
| | +--- io.micronaut:micronaut-runtime:1.1.0.RC2 (*)
| | +--- io.micronaut:micronaut-router:1.1.0.RC2
| | | +--- org.slf4j:slf4j-api:1.7.25
| | | +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| | | \--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| | \--- io.micronaut:micronaut-websocket:1.1.0.RC2 (*)
| \--- io.micronaut:micronaut-http-netty:1.1.0.RC2 (*)
\--- ch.qos.logback:logback-classic:1.2.3
+--- ch.qos.logback:logback-core:1.2.3
\--- org.slf4j:slf4j-api:1.7.25
runtimeElements - Elements of runtime for main. (n)
No dependencies
runtimeOnly - Runtime only dependencies for source set 'main'. (n)
\--- ch.qos.logback:logback-classic:1.2.3 (n)
shadow
No dependencies
testAnnotationProcessor - Annotation processors and their dependencies for source set 'test'.
\--- io.micronaut:micronaut-inject-java:1.1.0.RC2
\--- io.micronaut:micronaut-inject:1.1.0.RC2
+--- javax.inject:javax.inject:1
+--- io.micronaut:micronaut-core:1.1.0.RC2
| +--- org.slf4j:slf4j-api:1.7.25
| +--- org.reactivestreams:reactive-streams:1.0.2
| \--- com.google.code.findbugs:jsr305:3.0.2
+--- org.yaml:snakeyaml:1.23
\--- javax.annotation:javax.annotation-api:1.3.2
testCompile - Dependencies for source set 'test' (deprecated, use 'testImplementation' instead).
No dependencies
testCompileClasspath - Compile classpath for source set 'test'.
+--- io.micronaut:micronaut-bom:1.1.0.RC2
| +--- io.micronaut:micronaut-http-client:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-http-server-netty:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-inject:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-runtime:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-validation:1.1.0.RC2 (c)
| +--- io.micronaut.test:micronaut-test-junit5:1.0.2 (c)
| +--- org.junit.jupiter:junit-jupiter-engine:5.3.1 (c)
| +--- io.swagger.core.v3:swagger-annotations:2.0.4 (c)
| +--- io.micronaut.test:micronaut-test-core:1.0.2 (c)
| +--- io.micronaut:micronaut-http-netty:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-websocket:1.1.0.RC2 (c)
| +--- io.netty:netty-handler-proxy:4.1.30.Final (c)
| +--- org.slf4j:slf4j-api:1.7.25 (c)
| +--- io.reactivex.rxjava2:rxjava:2.2.6 (c)
| +--- io.micronaut:micronaut-http-server:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-core:1.1.0.RC2 (c)
| +--- javax.annotation:javax.annotation-api:1.3.2 (c)
| +--- org.yaml:snakeyaml:1.23 (c)
| +--- io.micronaut:micronaut-aop:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-http:1.1.0.RC2 (c)
| +--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (c)
| +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8 (c)
| +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.8 (c)
| +--- javax.cache:cache-api:1.1.0 (c)
| +--- javax.validation:validation-api:2.0.1.Final (c)
| +--- org.junit.jupiter:junit-jupiter-api:5.3.1 (c)
| +--- org.reactivestreams:reactive-streams:1.0.2 (c)
| +--- io.micronaut:micronaut-buffer-netty:1.1.0.RC2 (c)
| +--- io.netty:netty-codec-http:4.1.30.Final (c)
| +--- io.netty:netty-handler:4.1.30.Final (c)
| +--- io.netty:netty-codec-socks:4.1.30.Final (c)
| +--- io.netty:netty-transport:4.1.30.Final (c)
| +--- io.micronaut:micronaut-router:1.1.0.RC2 (c)
| +--- com.google.code.findbugs:jsr305:3.0.2 (c)
| +--- com.fasterxml.jackson.core:jackson-core:2.9.8 (c)
| +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8 (c)
| +--- io.netty:netty-buffer:4.1.30.Final (c)
| +--- io.netty:netty-codec:4.1.30.Final (c)
| +--- io.netty:netty-resolver:4.1.30.Final (c)
| \--- io.netty:netty-common:4.1.30.Final (c)
+--- io.swagger.core.v3:swagger-annotations:2.0.4
+--- io.micronaut:micronaut-inject -> 1.1.0.RC2
| +--- javax.inject:javax.inject:1
| +--- io.micronaut:micronaut-core:1.1.0.RC2
| | +--- org.slf4j:slf4j-api:1.7.25
| | +--- org.reactivestreams:reactive-streams:1.0.2
| | \--- com.google.code.findbugs:jsr305:3.0.2
| +--- org.yaml:snakeyaml:1.23
| \--- javax.annotation:javax.annotation-api:1.3.2
+--- io.micronaut:micronaut-validation -> 1.1.0.RC2
| +--- org.slf4j:slf4j-api:1.7.25
| +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-http:1.1.0.RC2
| | \--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| \--- javax.validation:validation-api:2.0.1.Final
+--- io.micronaut:micronaut-runtime -> 1.1.0.RC2
| +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-aop:1.1.0.RC2
| | \--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| +--- javax.validation:validation-api:2.0.1.Final
| +--- javax.cache:cache-api:1.1.0
| +--- com.fasterxml.jackson.core:jackson-databind:2.9.8
| | +--- com.fasterxml.jackson.core:jackson-annotations:2.9.0 -> 2.9.8
| | \--- com.fasterxml.jackson.core:jackson-core:2.9.8
| +--- io.reactivex.rxjava2:rxjava:2.2.6
| | \--- org.reactivestreams:reactive-streams:1.0.2
| +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8
| | +--- com.fasterxml.jackson.core:jackson-core:2.9.8
| | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
| \--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.8
| +--- com.fasterxml.jackson.core:jackson-annotations:2.9.0 -> 2.9.8
| +--- com.fasterxml.jackson.core:jackson-core:2.9.8
| \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
+--- io.micronaut:micronaut-http-client -> 1.1.0.RC2
| +--- org.slf4j:slf4j-api:1.7.25
| +--- io.reactivex.rxjava2:rxjava:2.2.6 (*)
| +--- io.micronaut:micronaut-http-netty:1.1.0.RC2
| | +--- org.slf4j:slf4j-api:1.7.25
| | +--- io.micronaut:micronaut-buffer-netty:1.1.0.RC2
| | | +--- org.slf4j:slf4j-api:1.7.25
| | | +--- io.micronaut:micronaut-core:1.1.0.RC2 (*)
| | | \--- io.netty:netty-buffer:4.1.30.Final
| | | \--- io.netty:netty-common:4.1.30.Final
| | +--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| | +--- io.micronaut:micronaut-websocket:1.1.0.RC2
| | | +--- org.slf4j:slf4j-api:1.7.25
| | | +--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| | | +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| | | +--- io.micronaut:micronaut-aop:1.1.0.RC2 (*)
| | | \--- io.reactivex.rxjava2:rxjava:2.2.6 (*)
| | +--- io.netty:netty-codec-http:4.1.30.Final
| | | \--- io.netty:netty-codec:4.1.30.Final
| | | \--- io.netty:netty-transport:4.1.30.Final
| | | +--- io.netty:netty-buffer:4.1.30.Final (*)
| | | \--- io.netty:netty-resolver:4.1.30.Final
| | | \--- io.netty:netty-common:4.1.30.Final
| | +--- io.reactivex.rxjava2:rxjava:2.2.6 (*)
| | \--- io.netty:netty-handler:4.1.30.Final
| | +--- io.netty:netty-buffer:4.1.30.Final (*)
| | +--- io.netty:netty-transport:4.1.30.Final (*)
| | \--- io.netty:netty-codec:4.1.30.Final (*)
| +--- io.micronaut:micronaut-runtime:1.1.0.RC2 (*)
| +--- io.netty:netty-handler-proxy:4.1.30.Final
| | +--- io.netty:netty-transport:4.1.30.Final (*)
| | +--- io.netty:netty-codec-socks:4.1.30.Final
| | | \--- io.netty:netty-codec:4.1.30.Final (*)
| | \--- io.netty:netty-codec-http:4.1.30.Final (*)
| \--- io.micronaut:micronaut-websocket:1.1.0.RC2 (*)
+--- io.micronaut:micronaut-http-server-netty -> 1.1.0.RC2
| +--- org.slf4j:slf4j-api:1.7.25
| +--- io.micronaut:micronaut-http-server:1.1.0.RC2
| | +--- io.micronaut:micronaut-runtime:1.1.0.RC2 (*)
| | +--- io.micronaut:micronaut-router:1.1.0.RC2
| | | +--- org.slf4j:slf4j-api:1.7.25
| | | +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| | | \--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| | \--- io.micronaut:micronaut-websocket:1.1.0.RC2 (*)
| \--- io.micronaut:micronaut-http-netty:1.1.0.RC2 (*)
+--- io.micronaut.test:micronaut-test-junit5:1.0.2
| \--- io.micronaut.test:micronaut-test-core:1.0.2
+--- org.mockito:mockito-junit-jupiter:2.22.0
| \--- org.mockito:mockito-core:2.22.0
| +--- net.bytebuddy:byte-buddy:1.8.21
| +--- net.bytebuddy:byte-buddy-agent:1.8.21
| \--- org.objenesis:objenesis:2.6
\--- org.junit.jupiter:junit-jupiter-engine:5.3.0 -> 5.3.1
+--- org.apiguardian:apiguardian-api:1.0.0
+--- org.junit.platform:junit-platform-engine:1.3.1
| +--- org.apiguardian:apiguardian-api:1.0.0
| +--- org.junit.platform:junit-platform-commons:1.3.1
| | \--- org.apiguardian:apiguardian-api:1.0.0
| \--- org.opentest4j:opentest4j:1.1.1
\--- org.junit.jupiter:junit-jupiter-api:5.3.1
+--- org.apiguardian:apiguardian-api:1.0.0
+--- org.opentest4j:opentest4j:1.1.1
\--- org.junit.platform:junit-platform-commons:1.3.1 (*)
testCompileOnly - Compile only dependencies for source set 'test'.
No dependencies
testImplementation - Implementation only dependencies for source set 'test'. (n)
+--- io.micronaut.test:micronaut-test-junit5:1.0.2 (n)
+--- org.mockito:mockito-junit-jupiter:2.22.0 (n)
\--- org.junit.jupiter:junit-jupiter-engine:5.3.0 (n)
testRuntime - Runtime dependencies for source set 'test' (deprecated, use 'testRuntimeOnly' instead).
No dependencies
testRuntimeClasspath - Runtime classpath of source set 'test'.
+--- io.micronaut:micronaut-bom:1.1.0.RC2
| +--- io.micronaut:micronaut-http-client:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-http-server-netty:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-inject:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-runtime:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-validation:1.1.0.RC2 (c)
| +--- io.micronaut.test:micronaut-test-junit5:1.0.2 (c)
| +--- org.junit.jupiter:junit-jupiter-engine:5.3.1 (c)
| +--- io.swagger.core.v3:swagger-annotations:2.0.4 (c)
| +--- org.slf4j:slf4j-api:1.7.25 (c)
| +--- io.micronaut.test:micronaut-test-core:1.0.2 (c)
| +--- org.junit.jupiter:junit-jupiter-api:5.3.1 (c)
| +--- io.micronaut:micronaut-http-netty:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-websocket:1.1.0.RC2 (c)
| +--- io.netty:netty-handler-proxy:4.1.30.Final (c)
| +--- io.reactivex.rxjava2:rxjava:2.2.6 (c)
| +--- io.micronaut:micronaut-http-server:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-core:1.1.0.RC2 (c)
| +--- javax.annotation:javax.annotation-api:1.3.2 (c)
| +--- org.yaml:snakeyaml:1.23 (c)
| +--- io.micronaut:micronaut-aop:1.1.0.RC2 (c)
| +--- io.micronaut:micronaut-http:1.1.0.RC2 (c)
| +--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (c)
| +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8 (c)
| +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.8 (c)
| +--- javax.cache:cache-api:1.1.0 (c)
| +--- javax.validation:validation-api:2.0.1.Final (c)
| +--- org.reactivestreams:reactive-streams:1.0.2 (c)
| +--- io.micronaut:micronaut-buffer-netty:1.1.0.RC2 (c)
| +--- io.netty:netty-codec-http:4.1.30.Final (c)
| +--- io.netty:netty-handler:4.1.30.Final (c)
| +--- io.netty:netty-codec-socks:4.1.30.Final (c)
| +--- io.netty:netty-transport:4.1.30.Final (c)
| +--- io.micronaut:micronaut-router:1.1.0.RC2 (c)
| +--- com.google.code.findbugs:jsr305:3.0.2 (c)
| +--- com.fasterxml.jackson.core:jackson-core:2.9.8 (c)
| +--- com.fasterxml.jackson.core:jackson-annotations:2.9.8 (c)
| +--- io.netty:netty-buffer:4.1.30.Final (c)
| +--- io.netty:netty-codec:4.1.30.Final (c)
| +--- io.netty:netty-resolver:4.1.30.Final (c)
| \--- io.netty:netty-common:4.1.30.Final (c)
+--- io.swagger.core.v3:swagger-annotations:2.0.4
+--- io.micronaut:micronaut-inject -> 1.1.0.RC2
| +--- javax.inject:javax.inject:1
| +--- io.micronaut:micronaut-core:1.1.0.RC2
| | +--- org.slf4j:slf4j-api:1.7.25
| | +--- org.reactivestreams:reactive-streams:1.0.2
| | \--- com.google.code.findbugs:jsr305:3.0.2
| +--- org.yaml:snakeyaml:1.23
| \--- javax.annotation:javax.annotation-api:1.3.2
+--- io.micronaut:micronaut-validation -> 1.1.0.RC2
| +--- org.slf4j:slf4j-api:1.7.25
| +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-http:1.1.0.RC2
| | \--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| \--- javax.validation:validation-api:2.0.1.Final
+--- io.micronaut:micronaut-runtime -> 1.1.0.RC2
| +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-aop:1.1.0.RC2
| | \--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| +--- javax.validation:validation-api:2.0.1.Final
| +--- javax.cache:cache-api:1.1.0
| +--- com.fasterxml.jackson.core:jackson-databind:2.9.8
| | +--- com.fasterxml.jackson.core:jackson-annotations:2.9.0 -> 2.9.8
| | \--- com.fasterxml.jackson.core:jackson-core:2.9.8
| +--- io.reactivex.rxjava2:rxjava:2.2.6
| | \--- org.reactivestreams:reactive-streams:1.0.2
| +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8
| | +--- com.fasterxml.jackson.core:jackson-core:2.9.8
| | \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
| \--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.8
| +--- com.fasterxml.jackson.core:jackson-annotations:2.9.0 -> 2.9.8
| +--- com.fasterxml.jackson.core:jackson-core:2.9.8
| \--- com.fasterxml.jackson.core:jackson-databind:2.9.8 (*)
+--- io.micronaut:micronaut-http-client -> 1.1.0.RC2
| +--- org.slf4j:slf4j-api:1.7.25
| +--- io.reactivex.rxjava2:rxjava:2.2.6 (*)
| +--- io.micronaut:micronaut-http-netty:1.1.0.RC2
| | +--- org.slf4j:slf4j-api:1.7.25
| | +--- io.micronaut:micronaut-buffer-netty:1.1.0.RC2
| | | +--- org.slf4j:slf4j-api:1.7.25
| | | +--- io.micronaut:micronaut-core:1.1.0.RC2 (*)
| | | \--- io.netty:netty-buffer:4.1.30.Final
| | | \--- io.netty:netty-common:4.1.30.Final
| | +--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| | +--- io.micronaut:micronaut-websocket:1.1.0.RC2
| | | +--- org.slf4j:slf4j-api:1.7.25
| | | +--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| | | +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| | | +--- io.micronaut:micronaut-aop:1.1.0.RC2 (*)
| | | \--- io.reactivex.rxjava2:rxjava:2.2.6 (*)
| | +--- io.netty:netty-codec-http:4.1.30.Final
| | | \--- io.netty:netty-codec:4.1.30.Final
| | | \--- io.netty:netty-transport:4.1.30.Final
| | | +--- io.netty:netty-buffer:4.1.30.Final (*)
| | | \--- io.netty:netty-resolver:4.1.30.Final
| | | \--- io.netty:netty-common:4.1.30.Final
| | +--- io.reactivex.rxjava2:rxjava:2.2.6 (*)
| | \--- io.netty:netty-handler:4.1.30.Final
| | +--- io.netty:netty-buffer:4.1.30.Final (*)
| | +--- io.netty:netty-transport:4.1.30.Final (*)
| | \--- io.netty:netty-codec:4.1.30.Final (*)
| +--- io.micronaut:micronaut-runtime:1.1.0.RC2 (*)
| +--- io.netty:netty-handler-proxy:4.1.30.Final
| | +--- io.netty:netty-transport:4.1.30.Final (*)
| | +--- io.netty:netty-codec-socks:4.1.30.Final
| | | \--- io.netty:netty-codec:4.1.30.Final (*)
| | \--- io.netty:netty-codec-http:4.1.30.Final (*)
| \--- io.micronaut:micronaut-websocket:1.1.0.RC2 (*)
+--- io.micronaut:micronaut-http-server-netty -> 1.1.0.RC2
| +--- org.slf4j:slf4j-api:1.7.25
| +--- io.micronaut:micronaut-http-server:1.1.0.RC2
| | +--- io.micronaut:micronaut-runtime:1.1.0.RC2 (*)
| | +--- io.micronaut:micronaut-router:1.1.0.RC2
| | | +--- org.slf4j:slf4j-api:1.7.25
| | | +--- io.micronaut:micronaut-inject:1.1.0.RC2 (*)
| | | \--- io.micronaut:micronaut-http:1.1.0.RC2 (*)
| | \--- io.micronaut:micronaut-websocket:1.1.0.RC2 (*)
| \--- io.micronaut:micronaut-http-netty:1.1.0.RC2 (*)
+--- ch.qos.logback:logback-classic:1.2.3
| +--- ch.qos.logback:logback-core:1.2.3
| \--- org.slf4j:slf4j-api:1.7.25
+--- io.micronaut.test:micronaut-test-junit5:1.0.2
| +--- io.micronaut.test:micronaut-test-core:1.0.2
| | +--- io.micronaut:micronaut-inject:1.0.3 -> 1.1.0.RC2 (*)
| | \--- io.micronaut:micronaut-runtime:1.0.3 -> 1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-inject:1.0.3 -> 1.1.0.RC2 (*)
| +--- io.micronaut:micronaut-runtime:1.0.3 -> 1.1.0.RC2 (*)
| \--- org.junit.jupiter:junit-jupiter-api:5.3.2 -> 5.3.1
| +--- org.apiguardian:apiguardian-api:1.0.0
| +--- org.opentest4j:opentest4j:1.1.1
| \--- org.junit.platform:junit-platform-commons:1.3.1
| \--- org.apiguardian:apiguardian-api:1.0.0
+--- org.mockito:mockito-junit-jupiter:2.22.0
| +--- org.mockito:mockito-core:2.22.0
| | +--- net.bytebuddy:byte-buddy:1.8.21
| | +--- net.bytebuddy:byte-buddy-agent:1.8.21
| | \--- org.objenesis:objenesis:2.6
| \--- org.junit.jupiter:junit-jupiter-api:5.1.1 -> 5.3.1 (*)
\--- org.junit.jupiter:junit-jupiter-engine:5.3.0 -> 5.3.1
+--- org.apiguardian:apiguardian-api:1.0.0
+--- org.junit.platform:junit-platform-engine:1.3.1
| +--- org.apiguardian:apiguardian-api:1.0.0
| +--- org.junit.platform:junit-platform-commons:1.3.1 (*)
| \--- org.opentest4j:opentest4j:1.1.1
\--- org.junit.jupiter:junit-jupiter-api:5.3.1 (*)
testRuntimeOnly - Runtime only dependencies for source set 'test'. (n)
No dependencies
Which results in the correct dependencies placed in the expected places except for micronaut-inject-java
in the compileOnly
configuration
\--- io.micronaut:micronaut-inject-java FAILED
@melix I suspect it's because of the same reason that annotationProcessor
failed. It seems one must use explicit version when the requested configuration is not in "compile, runtime, test, implementation, api". If so then we may need to update our docs if this fact is not already mentioned.
Removing the Maven files (pom.xml, .mvn, mvnw*), and re-importing the project, also delegating build to Gradle results in the following
However the application runs without errors. @graemerocher micronaut-validation is explicitly requested forcompile
in the build, thus why it's not marked as Provided
scope.
@melix we have to get IntelliJ developers involved as Gradle is behaving as expected but the IDE is not. Must check with Eclipse and VS.Code.
Updating the build file with
compileOnly "io.micronaut:micronaut-inject-java:$micronautVersion"
Does result in the correct dependency resolution
gw dependencies --configuration=compileOnly
> Task :dependencies
------------------------------------------------------------
Root project
------------------------------------------------------------
compileOnly - Compile only dependencies for source set 'main'.
\--- io.micronaut:micronaut-inject-java:1.1.0.RC2
\--- io.micronaut:micronaut-inject:1.1.0.RC2
+--- javax.inject:javax.inject:1
+--- io.micronaut:micronaut-core:1.1.0.RC2
| +--- org.slf4j:slf4j-api:1.7.25
| +--- org.reactivestreams:reactive-streams:1.0.2
| \--- com.google.code.findbugs:jsr305:3.0.2
+--- org.yaml:snakeyaml:1.23
\--- javax.annotation:javax.annotation-api:1.3.2
A web-based, searchable dependency report is available by adding the --scan option.
So not being able to apply dependency management to the annotationProcessor
scope is a problem for Micronaut, currently the Spring dependency management plugin allows this.
Also whilst using compileOnly
works it will result in deprecation warnings I believe because annotation processors have to be in annotationProcessor
scope.
I think in general there are issues with Gradle 5.x and IDE support that need to be resolved before we can confidently update our build templates and remove the spring dependency management plugin
So not being able to apply dependency management to the annotationProcessor scope is a problem for Micronaut, currently the Spring dependency management plugin allows this.
Platforms work with any configuration. The reason it doesn't work in the example above is because you added the platform only to the compile
configuration, which annotationProcessor
does not inherit from. If you add the platform to annotationProcessor
, it'll work just fine.
That is a good news, so now we should just need to figure out the IDE related problems
Any update on this? Should we create IDE related issue reports somewhere?
I would recommend to do so, yes. IntelliJ and Eclipse would be the starting points.
Issues created and linked above.
Beautiful! Thanks Graeme 😄
Both issues were closed without actually being resolved. Apparently this is dependent on
https://github.com/gradle/gradle/issues/2300
And an external IntelliJ issue https://youtrack.jetbrains.com/issue/IDEA-187868
So seemingly we are stuck on older versions of Gradle until these are resolved.
I don't understand what's making us "stuck on older versions" here, can you elaborate? I've reopened the issues, so we can also discuss there. I feel like we're mixing up annotation processor support and BOM support. BOM support works fine, as explained earlier in this thread. For annotation processing in the Eclipse, you'll still need net.ltgt.apt
. That's hasn't changed in 5.0.
IDE support is important from a framework perspective. If IDE support is broken that is an issue in terms of upgrading. Currently Gradle + any IDE presents the issues described above. Issues that are not present when using Maven + any IDE.
If we still need net.ltgt.apt
for Eclipse then ok, we have a way forward with Eclipse / Visual Studio, and if that is the current recommendation then ok.
With IntelliJ there are issues in 5.x that are not present with our previous setup. It would be good if those issues are resolved. Prior to us changing the templates.
I can reproduce the IDEA issue when using the "Module per SourceSet" checkbox (it works if you uncheck it). That is out of our control and needs to be fixed on the IDEA side. I've pinged the IntelliJ team.
Thanks @oehme
Thanks for bearing with me :)
Any update @oehme ?
Please follow along at https://github.com/gradle/gradle/issues/9313. I'll update that one when the JetBrains team picks it up. So far I haven't heard back from them, so I asked again today.
Gradle 5 brings a host of features, including native BOM support which is 3X times faster than Spring's
dependency-management
plugin. The following snippet shows an update build file for an application created withmn create-app greach
Notice that:
java
plugin is not required as it's implied byapplication
.shadow
updated to latest version.mavenLocal()
removed as it degrades performance. Only apply it if you really needed it.enforcedPlatform()
to resolve micronaut BOM.annotationProcessor
dependencies (could use a variable instead).