If I run $ mvn clean compile exec:java ... on my project, I get the following error stack trace:
java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:294) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NoClassDefFoundError: com/google/api/services/clouddebugger/v2/CloudDebugger at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2703) at java.lang.Class.getDeclaredMethod(Class.java:2130) at org.apache.beam.sdk.util.InstanceBuilder.buildFromMethod(InstanceBuilder.java:206) at org.apache.beam.sdk.util.InstanceBuilder.build(InstanceBuilder.java:162) at org.apache.beam.sdk.PipelineRunner.fromOptions(PipelineRunner.java:55) at org.apache.beam.sdk.Pipeline.create(Pipeline.java:150) at com.google.cloud.pontem.CloudSpannerDatabaseBackup.main(CloudSpannerDatabaseBackup.java:359) ... 6 more Caused by: java.lang.ClassNotFoundException: com.google.api.services.clouddebugger.v2.CloudDebugger at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) When I dig deeper, the root problem seems to be that my project is pulling in v2-rev8-1.22.0 instead of v2-rev233-1.23.0 (changing commit here <https://github.com/apache/beam/commit/66fcf4bff19cda5831465ccedbbaa6fbaa648234#diff-600376dffeb79835ede4a0b285078036> ). In fact, all the version changes in this commit <https://github.com/apache/beam/commit/66fcf4bff19cda5831465ccedbbaa6fbaa648234#diff-600376dffeb79835ede4a0b285078036> are missing. My project's pom.xml contains the following: <parent> <artifactId>beam-examples-parent</artifactId> <groupId>org.apache.beam</groupId> <version>2.5.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <groupId>com.google.cloud</groupId> <artifactId>xyz</artifactId> <repositories> <repository> <id>apache.snapshots</id> <name>Apache Development Snapshot Repository</name> <url> https://repository.apache.org/content/repositories/snapshots/</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> My first round of attempts to debug included removing ~/.m2/ and a number of other techniques. When I look at https://repository.apache.org/content/repositories/snapshots, I notice that beam-parent with 2.5.0-SNAPSHOT <https://repository.apache.org/content/repositories/snapshots/org/apache/beam/beam-parent/2.5.0-SNAPSHOT/> is very outdated and so all the version numbers inherited from the POM are wrong (see https://repository.apache.org/content/repositories/snapshots/org/apache/beam/beam-parent/2.5.0-SNAPSHOT/). If you look at https://repository.apache.org/content/repositories/snapshots/org/apache/beam/ you will see that the beam-parent is significantly old. So, it seems imperative that the snapshot be rebuilt before the finalized 2.5.0 version is set or any projects depending on the Beam parent will break. (I depend upon the Beam parent because trying to keep the versions of all the different Google projects in sync is a total nightmare). On Wed, Apr 25, 2018 at 6:58 PM Chamikara Jayalath <chamik...@google.com> wrote: > Ccing Eric for providing more context. > > Thanks, > Cham > > On Wed, Apr 25, 2018 at 3:38 PM Scott Wegner <sweg...@google.com> wrote: > >> Do you have any more context on how they were using the parent pom? In >> the Gradle build, instead of using a parent pom hierarchy we are embedding >> the complete set of dependencies and metadata in each generated pom. They >> should be functionally equivalent. >> >> On Wed, Apr 25, 2018 at 3:09 PM Chamikara Jayalath <chamik...@google.com> >> wrote: >> >>> At least one user was depending on 'beam-parent' and ran into issues due >>> to dependency update https://github.com/apache/beam/pull/5046 not being >>> reflected there. I'm not sure if this is a usage pattern that we should >>> discourage. >>> >>> Thanks, >>> Cham >>> >>> >>> On Wed, Apr 25, 2018 at 2:36 PM Alan Myrvold <amyrv...@google.com> >>> wrote: >>> >>>> The gradle build is currently only generating pom files when there is a >>>> jar file. >>>> What are these parent poms used for? Do all the parent poms need to be >>>> generated or just the top level beam-parent? >>>> >>>> On Wed, Apr 25, 2018 at 2:07 PM Chamikara Jayalath < >>>> chamik...@google.com> wrote: >>>> >>>>> Thanks. Should this be a 2.5.0 blocker ? >>>>> >>>>> On Wed, Apr 25, 2018 at 2:05 PM Alan Myrvold <amyrv...@google.com> >>>>> wrote: >>>>> >>>>>> I think this corresponds with the move from maven to gradle snapshot >>>>>> releases. >>>>>> Issue logged as https://issues.apache.org/jira/browse/BEAM-4170 >>>>>> >>>>>> On Wed, Apr 25, 2018 at 1:57 PM Chamikara Jayalath < >>>>>> chamik...@google.com> wrote: >>>>>> >>>>>>> Seems like we are not building some of the SNAPSHOT artifacts since >>>>>>> 4/9/2018. >>>>>>> For example: >>>>>>> >>>>>>> >>>>>>> https://repository.apache.org/content/repositories/snapshots/org/apache/beam/beam-parent/2.5.0-SNAPSHOT/ >>>>>>> >>>>>>> https://repository.apache.org/content/repositories/snapshots/org/apache/beam/beam-examples-parent/2.5.0-SNAPSHOT/ >>>>>>> >>>>>>> Users who depend on these artifacts are getting outdated >>>>>>> dependencies. >>>>>>> >>>>>>> Any idea why ? >>>>>>> >>>>>>> Thanks, >>>>>>> Cham >>>>>>> >>>>>> -- >> >> >> Got feedback? http://go/swegner-feedback >> >