If I include `beam-sdks-java-io-google-cloud-platform` version 2.18.0 in a project and try to use `SpannerIO`, the exception `java.lang.NoClassDefFoundError: io/opencensus/trace/Tracestate`. This seems to be caused by conflicting versions of `io.opencensus:opencensus-api` being included by the BigTable client and the Spanner client. BigTable imports version 0.15.0. Spanner depends on 0.18.0, but as they are at the same level in the dependency tree and BigTable is defined first, version 0.15.0 is used.
The workaround for this issue is to exclude the BigTable client in the project pom in order to be able to use SpannerIO.
An example pom and simple Java class are included. If the commented exclusion of the BigTable client is removed, the example will run without problems. The example will also run without problems on Beam version 2.17 without the exclusion.