Hey all, Does anyone have experience with sticky dependencies in gradle? I'm experimenting with the new Managed Iceberg connector and trying to write to GCS with a Hive catalog.
I naturally need to pull some hive dependencies, but one particular module is very stubborn with its dependencies: *org.apache.hive:hive-exec:3.1.3.* I need to override its dependency on *com.google.protobuf:protobuf-java* (version 2.5.0) to use a more up-to-date version, but nothing I do seems to work I tried the following in my gradle file, but running the code always defaults to classes in *protobuf-java:2.5.0*: configurations.all { resolutionStrategy.force 'com.google.protobuf:protobuf-java:3.25.3' } dependencies { testImplementation 'com.google.protobuf:protobuf-java:3.25.3' testImplementation("org.apache.hive:hive-exec:3.1.3") { exclude group: "com.google.protobuf", module: "protobuf-java" } testImplementation "org.apache.iceberg:iceberg-hive-metastore:1.4.2" testImplementation("org.apache.hive.hcatalog:hive-hcatalog-core:3.1.3") { exclude group: "org.apache.hive", module: "hive-exec" exclude group: "com.google.protobuf", module: "protobuf-java" } constraints { testImplementation('com.google.protobuf:protobuf-java') { version { strictly '3.25.3' } } } } I also tried adding the following, which stripped *protobuf-java* from everything except *hive-exec:* configurations.all { exclude group: 'com.google.protobuf', module: 'protobuf-java' } I also had similar pain points when trying to override org.apache.parquet:parquet-column. The hive module seems very intent on keeping its dependencies. Can anyone share their experiences with stubborn dependencies such as these? Would appreciate any tips! Best, Ahmed