Hi, I've been lurking on the sidelines on your mailinglist since December watching the final steps of the SOLR 10 release, thank you very much for all the work and congratulations on the release!!!
While integrating Solr 10.0.0 as a Maven dependency in our project (DSpace), we discovered that the published POMs for solr-core, solr-solrj, and solr-api on Maven Central are missing <version> elements for their Jackson 2 (com.fasterxml.jackson) dependencies. Affected artifacts: solr-core:10.0.0 jackson-annotations, jackson-core, jackson-databind, jackson-dataformat-smile, jackson-dataformat-cbor solr-solrj:10.0.0 jackson-databind, jackson-annotations, jackson-core solr-api:10.0.0 jackson-annotations Impact: Maven marks these POMs as invalid and refuses to resolve any transitive dependencies from the affected modules. For solr-core, this means ~50+ transitive dependencies are silently lost (Jersey, OpenTelemetry, Curator, Lucene modules, HPPC, etc.). Projects that use solr-core as a test dependency for EmbeddedSolrServer must manually declare all of these. Maven warning: [WARNING] The POM for org.apache.solr:solr-core:jar:10.0.0 is invalid, transitive dependencies (if any) will not be available: 5 problems were encountered while building the effective model for org.apache.solr:solr-core:10.0.0 [ERROR] 'dependencies.dependency.version' for com.fasterxml.jackson.core:jackson-annotations:jar is missing. [ERROR] 'dependencies.dependency.version' for com.fasterxml.jackson.core:jackson-core:jar is missing. [ERROR] 'dependencies.dependency.version' for com.fasterxml.jackson.core:jackson-databind:jar is missing. [ERROR] 'dependencies.dependency.version' for com.fasterxml.jackson.dataformat:jackson-dataformat-smile:jar is missing. [ERROR] 'dependencies.dependency.version' for com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:jar is missing. Root cause (likely): Solr 10 uses Gradle for building and uses a Jackson 2 BOM (jackson-bom) for version management. The Gradle maven-publish plugin generates the POM from the Gradle model, but BOM-managed versions are not resolved/flattened into the published POM. Since the published POM has no <parent> element, there is no BOM to fall back on at consumption time. Workaround: Projects that depend on solr-core (e.g. for testing with EmbeddedSolrServer) must explicitly declare all dependencies that would normally come transitively through solr-core. In our case this meant adding ~20 explicit test dependencies to match what solr-core would have provided. Would it be worth creating a JIRA for this? The fix would likely involve either adding explicit versions to the Gradle dependency declarations for Jackson, or configuring the maven-publish plugin to resolve BOM-managed versions when generating POMs. Thanks, Bram Luyten, Atmire
