hortonworks / registry

Schema Registry
Apache License 2.0
13 stars 8 forks source link

Hortonwork Schema Registry 1.0.0 (Invalid POM) #811

Open sykobee opened 1 year ago

sykobee commented 1 year ago

Whilst doing an upgrade to 1.0.0, both IntelliJ and command-line Maven (3.9.0) are complaining that the pom files for 1.0.0 are invalid.

[WARNING] The POM for com.hortonworks.registries:schema-registry-serdes:jar:1.0.0 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for com.hortonworks.registries:schema-registry-client:jar:1.0.0 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for com.hortonworks.registries:schema-registry-webservice:jar:1.0.0 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details

There are no further details when using -X with Maven.

Checking the schema-registry-client pom myself with mvn clean, I get:

[ERROR] 'dependencies.dependency.version' for com.fasterxml.jackson.core:jackson-core:jar is missing. @ line 73, column 17
[ERROR] 'dependencies.dependency.version' for com.fasterxml.jackson.core:jackson-databind:jar is missing. @ line 88, column 17
[ERROR] 'dependencies.dependency.version' for com.fasterxml.jackson.datatype:jackson-datatype-json-org:jar is missing. @ line 103, column 17
[ERROR] 'dependencies.dependency.version' for com.fasterxml.jackson.datatype:jackson-datatype-guava:jar is missing. @ line 118, column 17
[ERROR] 'dependencies.dependency.version' for com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar is missing. @ line 133, column 17
[ERROR] 'dependencies.dependency.version' for com.fasterxml.jackson.datatype:jackson-datatype-joda:jar is missing. @ line 148, column 17
[ERROR] 'dependencies.dependency.version' for com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar is missing. @ line 163, column 17
[ERROR] 'dependencies.dependency.version' for com.fasterxml.jackson.module:jackson-module-parameter-names:jar is missing. @ line 178, column 17
[ERROR] 'dependencies.dependency.version' for com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar is missing. @ line 193, column 17
[ERROR] 'dependencies.dependency.version' for com.fasterxml.jackson.core:jackson-annotations:jar is missing. @ line 208, column 17
[ERROR] 'dependencies.dependency.version' for org.junit.jupiter:junit-jupiter:jar is missing. @ line 358, column 17

I see there is no parent pom, nor dependencyManagement section, so it isn’t a surprise it is failing to validate the pom.

And I think the problem is a conversion between Gradle (https://github.com/hortonworks/registry/blob/master/schema-registry/schema-registry-client/build.gradle) and the POM it is generating at build time?

Obviously, I can work around this by including the transitive dependencies myself for now, but perhaps it’s worth looking into this and creating a 1.0.1 for those of us stuck with Maven?

It may be similar to https://github.com/spring-gradle-plugins/dependency-management-plugin/issues/141 but I think your Gradle version 6.7 is newer than that... (I cannot do a gradle build of a checkout locally due to the corporate firewall, and lacking some of the build’s gradle dependencies on the local nexus)

sykobee commented 1 year ago

Another issue is that dropwizard-bom and dropwizard-dependencies are 'pom' dependency types, not jar, but this isn't clear in the generated pom, so maven will go and try and find jars for these - but they don't exist.

Also there's no jersey-shaded 1.0.0 dependency - either because it's not needed any more (but still referenced), or it failed to get uploaded to maven central which thinks 0.9.1 is the latest.

ViaSacra commented 1 year ago

Hi. I got same problem on my project. It all started with the version 0.9.1. There were problems with kerberos and schema.registry. After updating schema-registry-serdes to version 1.0.0, it can't add their dependencies transitively and I get these kind of warnings. Your maven dependencies is invalid and I should add them all manually to the pom, instead of an automatic transitive download