micronaut-projects / micronaut-core

Micronaut Application Framework
http://micronaut.io
Apache License 2.0
6.05k stars 1.06k forks source link

Maven Central Replication / Broken BOM Deps #785

Closed ctoestreich closed 5 years ago

ctoestreich commented 5 years ago

It would appear that some of the artifacts that are specified in the maven BOM are not replicated out to jcenter/maven/etc. I copied all the BOM deps to a POM file, removed their version, and included the BOM. Then there were several errors of items that are included but not plublished and appear to be build/dev/etc that should be cleaned up. I have also included at the bottom a list of conflicting dependency versions that should be addressed and potentially pinned in the BOM file to ensure version interop long term. Most of these conflicts appear to be minor version, however there is a few that are major version conflicts.

Using the Pom below and running mvn dependency:resolve or other maven target the following is produced.

Could not resolve dependencies for project io.micronaut:micronaut-test-pom:jar:1.0.0: 

The following artifacts could not be resolved: io.micronaut:micronaut-build-projects:jar:1.0.0, io.micronaut:micronaut-test-utils:jar:1.0.0, io.micronaut:micronaut-asciidoc-config-props:jar:1.0.0, io.netty:netty-tcnative:jar:${os.detected.classifier}:2.0.15.Final, com.oracle.substratevm:svm:jar:GraalVM-1.0.0-rc7: Failure to find io.micronaut:micronaut-build-projects:jar:1.0.0 in [clone maven central] was cached in the local repository, resolution will not be reattempted until the update interval of artifactory has elapsed or updates are forced

Looking at jcenter http://jcenter.bintray.com/io/micronaut/ and maven central these are clearly not published.

Pom used

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <artifactId>micronaut-test-pom</artifactId>
    <packaging>jar</packaging>
    <groupId>io.micronaut</groupId>
    <version>1.0.0</version>

    <name>Micronaut Test POM</name>
    <description>Test POM for micronaut-bom</description>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.micronaut</groupId>
                <artifactId>micronaut-bom</artifactId>
                <version>1.0.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>

        <!-- MICRONAUT DEPS FROM BOM WITH VERSION REMOVED -->
        <dependency>
            <groupId>io.micronaut.profiles</groupId>
            <artifactId>function</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.profiles</groupId>
            <artifactId>cli</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.profiles</groupId>
            <artifactId>service</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.profiles</groupId>
            <artifactId>function-aws</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.profiles</groupId>
            <artifactId>kafka</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.profiles</groupId>
            <artifactId>profile</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.profiles</groupId>
            <artifactId>base</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.profiles</groupId>
            <artifactId>federation</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-buffer-netty</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-build-projects</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-cli</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-core</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-discovery-client</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-function</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-function-aws</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-function-client</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-function-groovy</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-function-web</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-graal</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-http</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-http-client</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-http-netty</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-http-server</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-http-server-netty</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-inject</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-inject-groovy</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-inject-java</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-inject-java-test</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-management</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-messaging</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-multitenancy</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-router</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-runtime</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-runtime-groovy</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-security</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-security-jwt</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-security-session</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-session</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-spring</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-test-utils</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-tracing</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-validation</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-views</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-websocket</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-asciidoc-config-props</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-aws-common</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-cassandra</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-gorm-common</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-hibernate-gorm</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-hibernate-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-hibernate-validator</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-jdbc-dbcp</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-jdbc-hikari</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-jdbc-tomcat</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-jmx</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-kafka</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-kafka-streams</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-micrometer-core</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-micrometer-registry-atlas</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-micrometer-registry-graphite</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-micrometer-registry-statsd</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-mongo-gorm</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-mongo-reactive</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-multitenancy-gorm</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-neo4j-bolt</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-neo4j-gorm</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-netflix-archaius</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-netflix-hystrix</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-netflix-ribbon</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-openapi</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-picocli</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-postgres-reactive</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-rabbitmq</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-redis-lettuce</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-security-ldap</artifactId>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy</artifactId>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-test</artifactId>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-ant</artifactId>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-json</artifactId>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-jmx</artifactId>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-templates</artifactId>
        </dependency>
        <dependency>
            <groupId>org.grails</groupId>
            <artifactId>grails-datastore-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.grails</groupId>
            <artifactId>grails-datastore-gorm</artifactId>
        </dependency>
        <dependency>
            <groupId>org.grails</groupId>
            <artifactId>grails-datastore-gorm-hibernate5</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-afterburner</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jdk8</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
        </dependency>
        <dependency>
            <groupId>io.jaegertracing</groupId>
            <artifactId>jaeger-thrift</artifactId>
        </dependency>
        <dependency>
            <groupId>io.zipkin.reporter2</groupId>
            <artifactId>zipkin-reporter</artifactId>
        </dependency>
        <dependency>
            <groupId>io.zipkin.brave</groupId>
            <artifactId>brave-instrumentation-http</artifactId>
        </dependency>
        <dependency>
            <groupId>io.opentracing.brave</groupId>
            <artifactId>brave-opentracing</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka_2.12</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-streams</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-core</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-atlas</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-graphite</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-statsd</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver-async</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongo-java-driver</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver-reactivestreams</artifactId>
        </dependency>
        <dependency>
            <groupId>org.neo4j.test</groupId>
            <artifactId>neo4j-harness</artifactId>
        </dependency>
        <dependency>
            <groupId>org.neo4j.driver</groupId>
            <artifactId>neo4j-java-driver</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-http</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-buffer</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-dns</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-haproxy</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-http2</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-memcache</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-mqtt</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-smtp</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-socks</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-stomp</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-xml</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-common</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-dev-tools</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-handler</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-handler-proxy</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-resolver</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-resolver-dns</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-rxtx</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-sctp</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-udt</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-example</artifactId>
        </dependency>
        <dependency>
            <groupId>io.opentracing</groupId>
            <artifactId>opentracing-api</artifactId>
        </dependency>
        <dependency>
            <groupId>io.opentracing</groupId>
            <artifactId>opentracing-util</artifactId>
        </dependency>
        <dependency>
            <groupId>info.picocli</groupId>
            <artifactId>picocli</artifactId>
        </dependency>
        <dependency>
            <groupId>io.lettuce</groupId>
            <artifactId>lettuce-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
        </dependency>
        <dependency>
            <groupId>org.spockframework</groupId>
            <artifactId>spock-core</artifactId>
        </dependency>
        <dependency>
            <groupId>io.swagger.core.v3</groupId>
            <artifactId>swagger-core</artifactId>
        </dependency>
        <dependency>
            <groupId>io.swagger.core.v3</groupId>
            <artifactId>swagger-models</artifactId>
        </dependency>
        <dependency>
            <groupId>io.swagger.core.v3</groupId>
            <artifactId>swagger-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>org.reactivestreams</groupId>
            <artifactId>reactive-streams</artifactId>
        </dependency>
        <dependency>
            <groupId>io.reactiverse</groupId>
            <artifactId>reactive-pg-client</artifactId>
        </dependency>
        <dependency>
            <groupId>io.reactivex</groupId>
            <artifactId>rxjava</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.akarnokd</groupId>
            <artifactId>rxjava2-interop</artifactId>
        </dependency>
        <dependency>
            <groupId>io.reactivex.rxjava2</groupId>
            <artifactId>rxjava</artifactId>
        </dependency>
        <dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-core</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
        </dependency>
        <dependency>
            <groupId>com.netflix.hystrix</groupId>
            <artifactId>hystrix-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.netflix.hystrix</groupId>
            <artifactId>hystrix-serialization</artifactId>
        </dependency>
        <dependency>
            <groupId>com.oracle.substratevm</groupId>
            <artifactId>svm</artifactId>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jdbc</artifactId>
        </dependency>

    </dependencies>

</project>
ctoestreich commented 5 years ago

I am wondering if somewhere the scope of those is incorrectly NOT test as they aren't published with the rest of the libraries? When I remove the ones below it resolves and builds.

<!--<dependency>-->
            <!--<groupId>io.micronaut</groupId>-->
            <!--<artifactId>micronaut-build-projects</artifactId>-->
        <!--</dependency>-->
<!--<dependency>-->
            <!--<groupId>io.micronaut</groupId>-->
            <!--<artifactId>micronaut-test-utils</artifactId>-->
        <!--</dependency>-->
 <!--<dependency>-->
            <!--<groupId>com.oracle.substratevm</groupId>-->
            <!--<artifactId>svm</artifactId>-->
        <!--</dependency>-->
<!--<dependency>-->
            <!--<groupId>io.micronaut</groupId>-->
            <!--<artifactId>micronaut-asciidoc-config-props</artifactId>-->
        <!--</dependency>-->
<!--<dependency>-->
            <!--<groupId>io.netty</groupId>-->
            <!--<artifactId>netty-example</artifactId>-->
        <!--</dependency>-->

The following is the complete "working" pom


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>io.micronaut</groupId>
    <version>1.0.0-SNAPSHOT</version>
    <artifactId>micronaut-test-pom</artifactId>
    <packaging>jar</packaging>

    <name>Micronaut Test POM</name>
    <description>Test POM for micronaut-bom</description>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.micronaut</groupId>
                <artifactId>micronaut-bom</artifactId>
                <version>1.0.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>

        <!-- MICRONAUT DEPS -->
        <dependency>
            <groupId>io.micronaut.profiles</groupId>
            <artifactId>function</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.profiles</groupId>
            <artifactId>cli</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.profiles</groupId>
            <artifactId>service</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.profiles</groupId>
            <artifactId>function-aws</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.profiles</groupId>
            <artifactId>kafka</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.profiles</groupId>
            <artifactId>profile</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.profiles</groupId>
            <artifactId>base</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.profiles</groupId>
            <artifactId>federation</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-buffer-netty</artifactId>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>io.micronaut</groupId>-->
            <!--<artifactId>micronaut-build-projects</artifactId>-->
        <!--</dependency>-->
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-cli</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-core</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-discovery-client</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-function</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-function-aws</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-function-client</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-function-groovy</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-function-web</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-graal</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-http</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-http-client</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-http-netty</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-http-server</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-http-server-netty</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-inject</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-inject-groovy</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-inject-java</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-inject-java-test</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-management</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-messaging</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-multitenancy</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-router</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-runtime</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-runtime-groovy</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-security</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-security-jwt</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-security-session</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-session</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-spring</artifactId>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>io.micronaut</groupId>-->
            <!--<artifactId>micronaut-test-utils</artifactId>-->
        <!--</dependency>-->
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-tracing</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-validation</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-views</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut</groupId>
            <artifactId>micronaut-websocket</artifactId>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>io.micronaut</groupId>-->
            <!--<artifactId>micronaut-asciidoc-config-props</artifactId>-->
        <!--</dependency>-->
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-aws-common</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-cassandra</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-gorm-common</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-hibernate-gorm</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-hibernate-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-hibernate-validator</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-jdbc-dbcp</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-jdbc-hikari</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-jdbc-tomcat</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-jmx</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-kafka</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-kafka-streams</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-micrometer-core</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-micrometer-registry-atlas</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-micrometer-registry-graphite</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-micrometer-registry-statsd</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-mongo-gorm</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-mongo-reactive</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-multitenancy-gorm</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-neo4j-bolt</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-neo4j-gorm</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-netflix-archaius</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-netflix-hystrix</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-netflix-ribbon</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-openapi</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-picocli</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-postgres-reactive</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-rabbitmq</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-redis-lettuce</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micronaut.configuration</groupId>
            <artifactId>micronaut-security-ldap</artifactId>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy</artifactId>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-test</artifactId>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-ant</artifactId>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-json</artifactId>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-jmx</artifactId>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-templates</artifactId>
        </dependency>
        <dependency>
            <groupId>org.grails</groupId>
            <artifactId>grails-datastore-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.grails</groupId>
            <artifactId>grails-datastore-gorm</artifactId>
        </dependency>
        <dependency>
            <groupId>org.grails</groupId>
            <artifactId>grails-datastore-gorm-hibernate5</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-afterburner</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jdk8</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
        </dependency>
        <dependency>
            <groupId>io.jaegertracing</groupId>
            <artifactId>jaeger-thrift</artifactId>
        </dependency>
        <dependency>
            <groupId>io.zipkin.reporter2</groupId>
            <artifactId>zipkin-reporter</artifactId>
        </dependency>
        <dependency>
            <groupId>io.zipkin.brave</groupId>
            <artifactId>brave-instrumentation-http</artifactId>
        </dependency>
        <dependency>
            <groupId>io.opentracing.brave</groupId>
            <artifactId>brave-opentracing</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka_2.12</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-streams</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-core</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-atlas</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-graphite</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-statsd</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver-async</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongo-java-driver</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver-reactivestreams</artifactId>
        </dependency>
        <dependency>
            <groupId>org.neo4j.test</groupId>
            <artifactId>neo4j-harness</artifactId>
        </dependency>
        <dependency>
            <groupId>org.neo4j.driver</groupId>
            <artifactId>neo4j-java-driver</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-http</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-buffer</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-dns</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-haproxy</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-http2</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-memcache</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-mqtt</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-smtp</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-socks</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-stomp</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-xml</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-common</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-dev-tools</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-handler</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-handler-proxy</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-resolver</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-resolver-dns</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-rxtx</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-sctp</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-udt</artifactId>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>io.netty</groupId>-->
            <!--<artifactId>netty-example</artifactId>-->
        <!--</dependency>-->
        <dependency>
            <groupId>io.opentracing</groupId>
            <artifactId>opentracing-api</artifactId>
        </dependency>
        <dependency>
            <groupId>io.opentracing</groupId>
            <artifactId>opentracing-util</artifactId>
        </dependency>
        <dependency>
            <groupId>info.picocli</groupId>
            <artifactId>picocli</artifactId>
        </dependency>
        <dependency>
            <groupId>io.lettuce</groupId>
            <artifactId>lettuce-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
        </dependency>
        <dependency>
            <groupId>org.spockframework</groupId>
            <artifactId>spock-core</artifactId>
        </dependency>
        <dependency>
            <groupId>io.swagger.core.v3</groupId>
            <artifactId>swagger-core</artifactId>
        </dependency>
        <dependency>
            <groupId>io.swagger.core.v3</groupId>
            <artifactId>swagger-models</artifactId>
        </dependency>
        <dependency>
            <groupId>io.swagger.core.v3</groupId>
            <artifactId>swagger-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>org.reactivestreams</groupId>
            <artifactId>reactive-streams</artifactId>
        </dependency>
        <dependency>
            <groupId>io.reactiverse</groupId>
            <artifactId>reactive-pg-client</artifactId>
        </dependency>
        <dependency>
            <groupId>io.reactivex</groupId>
            <artifactId>rxjava</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.akarnokd</groupId>
            <artifactId>rxjava2-interop</artifactId>
        </dependency>
        <dependency>
            <groupId>io.reactivex.rxjava2</groupId>
            <artifactId>rxjava</artifactId>
        </dependency>
        <dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-core</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
        </dependency>
        <dependency>
            <groupId>com.netflix.hystrix</groupId>
            <artifactId>hystrix-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.netflix.hystrix</groupId>
            <artifactId>hystrix-serialization</artifactId>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>com.oracle.substratevm</groupId>-->
            <!--<artifactId>svm</artifactId>-->
        <!--</dependency>-->
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jdbc</artifactId>
        </dependency>

    </dependencies>

</project>
ctoestreich commented 5 years ago

Not to clutter this issue up but here are the overlapping items from simply using the bom in that test pom.

[WARNING] Rule 3: org.apache.maven.plugins.enforcer.RequireUpperBoundDeps failed with message:
Failed while enforcing RequireUpperBoundDeps. The error(s) are [
Require upper bound dependencies error for org.apache.ant:ant:1.9.7 paths to dependency are:
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut:micronaut-cli:1.0.0
    +-org.apache.ant:ant:1.9.7
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.codehaus.groovy:groovy-ant:2.5.1
    +-org.apache.ant:ant:1.9.9
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.codehaus.groovy:groovy-ant:2.5.1
    +-org.apache.ant:ant-junit:1.9.9
      +-org.apache.ant:ant:1.9.9
, 
Require upper bound dependencies error for org.apache.httpcomponents:httpclient:4.5.2 paths to dependency are:
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.neo4j.test:neo4j-harness:3.3.6
    +-org.apache.httpcomponents:httpclient:4.5.2
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut.configuration:micronaut-aws-common:1.0.0
    +-com.amazonaws:aws-java-sdk-core:1.11.297
      +-org.apache.httpcomponents:httpclient:4.5.5
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.jaegertracing:jaeger-thrift:0.31.0
    +-org.apache.thrift:libthrift:0.11.0
      +-org.apache.httpcomponents:httpclient:4.4.1
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut:micronaut-cli:1.0.0
    +-org.springframework.boot:spring-boot-cli:1.5.10.RELEASE
      +-org.eclipse.aether:aether-transport-http:1.0.2.v20150114
        +-org.apache.httpcomponents:httpclient:4.2.6
, 
Require upper bound dependencies error for org.reactivestreams:reactive-streams:1.0.1 paths to dependency are:
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.reactivestreams:reactive-streams:1.0.1
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut:micronaut-core:1.0.0
    +-org.reactivestreams:reactive-streams:1.0.1 (managed) <-- org.reactivestreams:reactive-streams:1.0.2
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.mongodb:mongodb-driver-reactivestreams:1.8.0
    +-org.reactivestreams:reactive-streams:1.0.1 (managed) <-- org.reactivestreams:reactive-streams:1.0.2
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-com.github.akarnokd:rxjava2-interop:0.13.1
    +-org.reactivestreams:reactive-streams:1.0.1 (managed) <-- org.reactivestreams:reactive-streams:1.0.2
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.reactivex.rxjava2:rxjava:2.2.2
    +-org.reactivestreams:reactive-streams:1.0.1 (managed) <-- org.reactivestreams:reactive-streams:1.0.2
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.projectreactor:reactor-core:3.2.0.RELEASE
    +-org.reactivestreams:reactive-streams:1.0.1 (managed) <-- org.reactivestreams:reactive-streams:1.0.2
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut.configuration:micronaut-postgres-reactive:1.0.0
    +-io.vertx:vertx-rx-java2:3.5.3
      +-org.reactivestreams:reactive-streams:1.0.1 (managed) <-- org.reactivestreams:reactive-streams:1.0.2
, 
Require upper bound dependencies error for org.spockframework:spock-core:1.1-groovy-2.4 paths to dependency are:
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.spockframework:spock-core:1.1-groovy-2.4
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut:micronaut-inject-java-test:1.0.0
    +-org.spockframework:spock-core:1.1-groovy-2.4 (managed) <-- org.spockframework:spock-core:1.2-groovy-2.5
, 
Require upper bound dependencies error for org.ow2.asm:asm:5.0.3 paths to dependency are:
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut.configuration:micronaut-cassandra:1.0.0
    +-com.datastax.cassandra:cassandra-driver-core:3.1.0
      +-com.github.jnr:jnr-ffi:2.0.7
        +-org.ow2.asm:asm:5.0.3
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut:micronaut-security-jwt:1.0.0
    +-com.nimbusds:nimbus-jose-jwt:6.0.2
      +-net.minidev:json-smart:2.3
        +-net.minidev:accessors-smart:1.2
          +-org.ow2.asm:asm:5.0.4
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut.configuration:micronaut-cassandra:1.0.0
    +-com.datastax.cassandra:cassandra-driver-core:3.1.0
      +-com.github.jnr:jnr-ffi:2.0.7
        +-org.ow2.asm:asm-tree:5.0.3
          +-org.ow2.asm:asm:5.0.3
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.neo4j.test:neo4j-harness:3.3.6
    +-org.neo4j:neo4j:3.3.6
      +-org.neo4j:neo4j-cypher:3.3.6
        +-org.neo4j:neo4j-codegen:3.3.6
          +-org.ow2.asm:asm:5.2
, 
Require upper bound dependencies error for commons-logging:commons-logging:1.1.3 paths to dependency are:
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut.configuration:micronaut-aws-common:1.0.0
    +-com.amazonaws:aws-java-sdk-core:1.11.297
      +-commons-logging:commons-logging:1.1.3
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut.configuration:micronaut-jdbc-dbcp:1.0.0
    +-org.apache.commons:commons-dbcp2:2.1.1
      +-commons-logging:commons-logging:1.2
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.neo4j.test:neo4j-harness:3.3.6
    +-org.apache.httpcomponents:httpclient:4.5.2
      +-commons-logging:commons-logging:1.2
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.neo4j.test:neo4j-harness:3.3.6
    +-org.neo4j.app:neo4j-server:3.3.6
      +-commons-configuration:commons-configuration:1.10
        +-commons-logging:commons-logging:1.1.1
, 
Require upper bound dependencies error for io.dropwizard.metrics:metrics-core:3.1.2 paths to dependency are:
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut.configuration:micronaut-cassandra:1.0.0
    +-com.datastax.cassandra:cassandra-driver-core:3.1.0
      +-io.dropwizard.metrics:metrics-core:3.1.2
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micrometer:micrometer-registry-graphite:1.0.6
    +-io.dropwizard.metrics:metrics-graphite:3.2.6
      +-io.dropwizard.metrics:metrics-core:3.2.6
, 
Require upper bound dependencies error for org.ow2.asm:asm-tree:5.0.3 paths to dependency are:
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut.configuration:micronaut-cassandra:1.0.0
    +-com.datastax.cassandra:cassandra-driver-core:3.1.0
      +-com.github.jnr:jnr-ffi:2.0.7
        +-org.ow2.asm:asm-tree:5.0.3
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut.configuration:micronaut-cassandra:1.0.0
    +-com.datastax.cassandra:cassandra-driver-core:3.1.0
      +-com.github.jnr:jnr-ffi:2.0.7
        +-org.ow2.asm:asm-commons:5.0.3
          +-org.ow2.asm:asm-tree:5.0.3
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut.configuration:micronaut-cassandra:1.0.0
    +-com.datastax.cassandra:cassandra-driver-core:3.1.0
      +-com.github.jnr:jnr-ffi:2.0.7
        +-org.ow2.asm:asm-analysis:5.0.3
          +-org.ow2.asm:asm-tree:5.0.3
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut.configuration:micronaut-cassandra:1.0.0
    +-com.datastax.cassandra:cassandra-driver-core:3.1.0
      +-com.github.jnr:jnr-ffi:2.0.7
        +-org.ow2.asm:asm-util:5.0.3
          +-org.ow2.asm:asm-tree:5.0.3
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.neo4j.test:neo4j-harness:3.3.6
    +-org.neo4j:neo4j:3.3.6
      +-org.neo4j:neo4j-cypher:3.3.6
        +-org.neo4j:neo4j-codegen:3.3.6
          +-org.ow2.asm:asm-tree:5.2
, 
Require upper bound dependencies error for org.ow2.asm:asm-analysis:5.0.3 paths to dependency are:
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut.configuration:micronaut-cassandra:1.0.0
    +-com.datastax.cassandra:cassandra-driver-core:3.1.0
      +-com.github.jnr:jnr-ffi:2.0.7
        +-org.ow2.asm:asm-analysis:5.0.3
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.neo4j.test:neo4j-harness:3.3.6
    +-org.neo4j:neo4j:3.3.6
      +-org.neo4j:neo4j-cypher:3.3.6
        +-org.neo4j:neo4j-codegen:3.3.6
          +-org.ow2.asm:asm-analysis:5.2
, 
Require upper bound dependencies error for org.ow2.asm:asm-util:5.0.3 paths to dependency are:
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut.configuration:micronaut-cassandra:1.0.0
    +-com.datastax.cassandra:cassandra-driver-core:3.1.0
      +-com.github.jnr:jnr-ffi:2.0.7
        +-org.ow2.asm:asm-util:5.0.3
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.neo4j.test:neo4j-harness:3.3.6
    +-org.neo4j:neo4j:3.3.6
      +-org.neo4j:neo4j-cypher:3.3.6
        +-org.neo4j:neo4j-codegen:3.3.6
          +-org.ow2.asm:asm-util:5.2
, 
Require upper bound dependencies error for org.javassist:javassist:3.21.0-GA paths to dependency are:
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.grails:grails-datastore-core:6.1.8.RELEASE
    +-org.javassist:javassist:3.21.0-GA
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut.configuration:micronaut-hibernate-jpa:1.0.0
    +-org.hibernate:hibernate-core:5.3.6.Final
      +-org.javassist:javassist:3.23.1-GA
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.grails:grails-datastore-gorm-hibernate5:6.1.8.RELEASE
    +-org.grails:grails-datastore-gorm-hibernate-core:6.1.8.RELEASE
      +-org.javassist:javassist:3.21.0-GA
, 
Require upper bound dependencies error for commons-configuration:commons-configuration:1.8 paths to dependency are:
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-io.micronaut.configuration:micronaut-netflix-archaius:1.0.0
    +-com.netflix.archaius:archaius-core:0.7.6
      +-commons-configuration:commons-configuration:1.8
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.neo4j.test:neo4j-harness:3.3.6
    +-org.neo4j.app:neo4j-server:3.3.6
      +-commons-configuration:commons-configuration:1.10
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.neo4j.test:neo4j-harness:3.3.6
    +-org.neo4j.app:neo4j-server:3.3.6
      +-commons-configuration:commons-configuration:1.10
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.neo4j.test:neo4j-harness:3.3.6
    +-org.neo4j.app:neo4j-server:3.3.6
      +-org.neo4j:server-api:3.3.6
        +-commons-configuration:commons-configuration:1.8
, 
Require upper bound dependencies error for org.springframework:spring-beans:4.3.9.RELEASE paths to dependency are:
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.grails:grails-datastore-core:6.1.8.RELEASE
    +-org.springframework:spring-beans:4.3.9.RELEASE
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.springframework:spring-context:5.0.10.RELEASE
    +-org.springframework:spring-beans:5.0.10.RELEASE
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.springframework:spring-tx:5.0.10.RELEASE
    +-org.springframework:spring-beans:5.0.10.RELEASE
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.springframework:spring-orm:5.0.10.RELEASE
    +-org.springframework:spring-beans:5.0.10.RELEASE
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.springframework:spring-jdbc:5.0.10.RELEASE
    +-org.springframework:spring-beans:5.0.10.RELEASE
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.springframework:spring-context:5.0.10.RELEASE
    +-org.springframework:spring-aop:5.0.10.RELEASE
      +-org.springframework:spring-beans:5.0.10.RELEASE
graemerocher commented 5 years ago

The artefacts that are not synced are not synced because they are non-public / build or test related projects that are not mean to be included in the BOM

As for the overlapping requirements, that seems related to CLI dependencies which are not meant to be consumed by applications, so I'm not sure how this is an issue.

ctoestreich commented 5 years ago

BOM Issue

@graemerocher I am not a Maven fanboy by any means, but my philosophy on the matter and the reason I think this IS an issue, albeit a minor one, is to keep the BOM true to its nature.

According to the maven site "The root of the project is the BOM pom. It defines the versions of all the artifacts that will be created in the library. Other projects that wish to use the library should import this pom into the dependencyManagement section of their pom."

If there are items provided in the BOM that are NON-RESOLVABLE, then why are they in the BOM. Its like I give you a list of items in my house of "pants, shoes, diapers, SpaceX rocket, eggs, alligator and a refrigerator." Clearly some of these things are NOT in my house and I should probably clean up my list?! If non-compile/non-runtime dependencies have bled through to the BOM, they should be cleaned up and removed. I think those libraries that are used under test that might be denoted as "foo-test" could be there as long as the dependency is resolvable.

We do a lot of these BOMs now and having items that are for internal only testing and non-resolvable has a bad code smell.

Enforcer Findings

Concerning the issue of overlapping dependencies, I am not sure how this ISN'T a potential issue. I know you must have been a maven guy a long time ago and probably know more than I on this issue. I think this read is worthwhile concerning the POTENTIAL issue. Specifically the enforcer plugin is saying "There are equal depth transitive dependencies that have version conflicts, your intended API/behavior/etc may vary." Not so much that it WILL vary, it may. I am merely illustrating, as in the case of the spring library below that there are conflicting major versions of transitive deps.

Require upper bound dependencies error for org.springframework:spring-beans:4.3.9.RELEASE paths to dependency are:
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.grails:grails-datastore-core:6.1.8.RELEASE
    +-org.springframework:spring-beans:4.3.9.RELEASE
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.springframework:spring-context:5.0.10.RELEASE
    +-org.springframework:spring-beans:5.0.10.RELEASE
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.springframework:spring-tx:5.0.10.RELEASE
    +-org.springframework:spring-beans:5.0.10.RELEASE
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.springframework:spring-orm:5.0.10.RELEASE
    +-org.springframework:spring-beans:5.0.10.RELEASE
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.springframework:spring-jdbc:5.0.10.RELEASE
    +-org.springframework:spring-beans:5.0.10.RELEASE
and
+-xxxxxx:micronaut-test-pom:1.0.0-SNAPSHOT
  +-org.springframework:spring-context:5.0.10.RELEASE
    +-org.springframework:spring-aop:5.0.10.RELEASE
      +-org.springframework:spring-beans:5.0.10.RELEASE
ctoestreich commented 5 years ago

Since you guys probably aren't using maven enforcer for builds, and if anyone was curious, here is our settings that caused all this churn

 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>3.0.0-M2</version>
                <executions>
                    <execution>
                        <id>enforce-maven</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <requireMavenVersion>
                                    <version>3.3.9</version>
                                </requireMavenVersion>
                                <requireJavaVersion>
                                    <version>1.8</version>
                                </requireJavaVersion>
                                <!-- commented to allow center for the moment -->
                                <!-- <requireNoRepositories/> -->
                                <requireReleaseDeps>
                                    <message>No Snapshots Allowed in releases!</message>
                                    <onlyWhenRelease>true</onlyWhenRelease>
                                </requireReleaseDeps>
                                <requireUpperBoundDeps>
                                    <!-- 'uniqueVersions' (default:false) can be set to true if you want to compare the timestamped SNAPSHOTs  -->
                                    <!-- <uniqueVersions>true</uniqueVersions> -->
                                    <!-- If you wish to ignore certain cases: -->
                                    <excludes>
                                        <exclude>com.google.guava:guava</exclude>
                                    </excludes>
                                </requireUpperBoundDeps>
                                <banDuplicatePomDependencyVersions/>
                                <bannedDependencies>
                                    <searchTransitive>true</searchTransitive>
                                </bannedDependencies>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
wykapedia commented 5 years ago

Typically, the requireUpperBoundDeps can be resolved by choosing the higher version of the conflicting dependencies. Having this defined at the Micronaut level allows other developers to be shielded from doing this themselves. This is something that Spring framework guarantees by using their BOMs.

wykapedia commented 5 years ago

In my opinion the testing and CLI dependencies should be included in the BOM, just to declare which ones are actually compatible to be using with the remaining stack of compile / runtime dependencies.

ctoestreich commented 5 years ago

Here is the effective BOM I had to make to wrap the micronaut one with pinned versions so that we aren't leaving it up to dumb luck and order of listing to determine which transitive will be pulled in.

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <version>1.0.0-SNAPSHOT</version>
    <groupId>io.micronaut.parent</groupId>
    <artifactId>micronaut-bom</artifactId>
    <packaging>pom</packaging>

    <name>Micronaut BOM</name>
    <description>Micronaut dependency management Bill of Materials</description>

    <properties>
        <!-- MICRONAUT VERSION PINNING LIBRARIES -->
        <micronaut.version>1.0.0</micronaut.version>
        <jwt-security.version>1.0.1.RELEASE</jwt-security.version>
        <jjwt.version>0.7.0</jjwt.version>
        <hamcrest-all.version>1.3</hamcrest-all.version>
        <logback-classic.version>1.2.3</logback-classic.version>
        <ant.version>1.9.9</ant.version>
        <httpclient.version>4.5.5</httpclient.version>
        <httpcore.version>4.4.9</httpcore.version>
        <reactive-streams.version>1.0.2</reactive-streams.version>
        <asm.version>5.2</asm.version>
        <metrics-core.version>3.2.6</metrics-core.version>
        <javaassist.version>3.23.1-GA</javaassist.version>
        <commons-configuration.version>1.10</commons-configuration.version>
        <commons-logging.version>1.2</commons-logging.version>
        <commons-codec.version>1.10</commons-codec.version>
        <spring.version>5.0.10.RELEASE</spring.version>
        <spring-beans.version>${spring.version}</spring-beans.version>
    </properties>

    <dependencyManagement>
        <dependencies>

            <!-- Micronaut BOM -->
            <dependency>
                <groupId>io.micronaut</groupId>
                <artifactId>micronaut-bom</artifactId>
                <version>${micronaut.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt</artifactId>
                <version>${jjwt.version}</version>
            </dependency>

            <!-- logging -->
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>${logback-classic.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ant</groupId>
                <artifactId>ant</artifactId>
                <version>${ant.version}</version>
            </dependency>

            <dependency>
                <groupId>org.reactivestreams</groupId>
                <artifactId>reactive-streams</artifactId>
                <version>${reactive-streams.version}</version>
            </dependency>

            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-core</artifactId>
                <version>${metrics-core.version}</version>
            </dependency>

            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm</artifactId>
                <version>${asm.version}</version>
            </dependency>

            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-tree</artifactId>
                <version>${asm.version}</version>
            </dependency>

            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-analysis</artifactId>
                <version>${asm.version}</version>
            </dependency>

            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-util</artifactId>
                <version>${asm.version}</version>
            </dependency>

            <dependency>
                <groupId>org.javassist</groupId>
                <artifactId>javassist</artifactId>
                <version>${javaassist.version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${spring-beans.version}</version>
            </dependency>

            <dependency>
                <groupId>commons-configuration</groupId>
                <artifactId>commons-configuration</artifactId>
                <version>${commons-configuration.version}</version>
            </dependency>

            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${commons-codec.version}</version>
            </dependency>

            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>${commons-logging.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${httpclient.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>${httpcore.version}</version>
            </dependency>

            <!-- TEST DEPENDENCIES -->
            <dependency>
                <groupId>io.micronaut</groupId>
                <artifactId>micronaut-inject-java-test</artifactId>
                <version>${micronaut.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.spockframework</groupId>
                        <artifactId>spock-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.spockframework</groupId>
                <artifactId>spock-spring</artifactId>
                <version>${spock.version}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-all</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.spockframework</groupId>
                <artifactId>spock-core</artifactId>
                <version>${spock.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-all</artifactId>
                <version>${hamcrest-all.version}</version>
                <scope>test</scope>
            </dependency>

        </dependencies>
    </dependencyManagement>

</project>
graemerocher commented 5 years ago

https://github.com/micronaut-projects/micronaut-core/blob/master/bom/build.gradle#L25 is where the BOM is built, it uses largely the same process as the BOM we produce with Grails, maybe since Grails has no Maven users these issues haven't cropped up. I don't know how they manifest in user applications, Micronaut 1.0 seems fine and usable with Maven from an end user point of view, but maybe I'm not a BOM expert either.

The actual dependency versions get populated from https://github.com/micronaut-projects/micronaut-core/blob/master/build.gradle#L41

so simply updating that with whatever is missing will probably resolve the issue. A PR would be welcome.

ctoestreich commented 5 years ago

@graemerocher Time allowing, I will work with my team (which has some maven experts) to help clean this up. I am looking at your @wykapedia (Lets see if we can get Mr. Maven, EE, to help out as well)

jameskleeh commented 5 years ago

@ctoestreich I pushed a commit to the 1.0.x branch that removes the entries that should not be there. Please give it a try. The conflicting dependencies are still there, however I'm not sure what we can do about that given that GORM does not work with Spring 5.

jameskleeh commented 5 years ago

@ctoestreich Can we consider this issue closed?

ctoestreich commented 5 years ago

Let me regenerate and check. Give me a couple hours.

ctoestreich commented 5 years ago

Close for now. I will update if any issues persist.

ctoestreich commented 5 years ago

Close for now. I will update if any issues persist.