Hi!
I am trying to switch from xolstice/protobuf-maven-plugin to ascopes/protobuf-maven-plugin, but getting some unexpected results.
Our setup:
- a separate "proto" project with a lot of proto files which generates a bunch of artifacts with generated class files and embedded proto files
- the "main" multi-module project that depends on proto-project artifacts as necessary, with a couple of modules that have their own proto files
I have configured <embedSourcesInClassOutputs>true</embedSourcesInClassOutputs> because it matches the default xolstice behaviour.
Most modules are OK after switching to ascopes.
Some modules that both have their own proto files and depend on a lot of proto-project artifacts cause OOME.
-X log looks like this:
[INFO] --- protobuf:2.12.1:generate (generate) @ unlucky-module ---
...
[DEBUG] Configuring mojo execution 'io.github.ascopes:protobuf-maven-plugin:2.12.1:generate:generate' with basic configurator -->
...
[DEBUG] Resolving artifact: MavenDependency{groupId=com.google.protobuf, artifactId=protoc, version=3.25.5, type=exe, classifier=linux-x86_64, dependencyResolutionDepth=null, exclusions=[]}
[DEBUG] Resolved extension exe to Aether artifact type (classifier: "", type: "exe", id: "exe", "{language=none, constitutesBuildPath=false, type=exe, includesDependencies=false}")
[INFO] Resolving artifact com.google.protobuf:protoc:exe:linux-x86_64:3.25.5 from repositories
[DEBUG] Discovering all compilable protobuf source files
[DEBUG] Attempting to resolve the following dependencies in this pass: []
...
// a long list of unlucky-module dependencies goes here
[DEBUG] Resolving project dependency: Dependency {groupId=..., artifactId=..., version=..., type=...}
...
[DEBUG] Attempting to resolve the following dependencies in this pass: [non-empty list, contains unlucky-module dependencies]
at this point the log "stops" for some time, and then fails with
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:31 min (Wall Clock)
[INFO] Finished at: 2025-03-17T16:10:36+03:00
[INFO] ------------------------------------------------------------------------
[ERROR] Java heap space -> [Help 1]
java.lang.OutOfMemoryError: Java heap space
at java.util.ArrayList.grow (ArrayList.java:240)
at java.util.ArrayList.grow (ArrayList.java:245)
at java.util.ArrayList.add (ArrayList.java:484)
at java.util.ArrayList.add (ArrayList.java:497)
at org.eclipse.aether.resolution.VersionRangeResult.addVersion (VersionRangeResult.java:116)
at org.eclipse.aether.internal.impl.collect.DataPool$Constraint.toResult (DataPool.java:352)
at org.eclipse.aether.internal.impl.collect.DataPool.getConstraint (DataPool.java:227)
at org.eclipse.aether.internal.impl.collect.DependencyCollectorDelegate.cachedResolveRangeResult (DependencyCollectorDelegate.java:404)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.processDependency (DfDependencyCollector.java:202)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.processDependency (DfDependencyCollector.java:156)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.process (DfDependencyCollector.java:138)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.doRecurse (DfDependencyCollector.java:343)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.processDependency (DfDependencyCollector.java:277)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.processDependency (DfDependencyCollector.java:156)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.process (DfDependencyCollector.java:138)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.doRecurse (DfDependencyCollector.java:343)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.processDependency (DfDependencyCollector.java:277)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.processDependency (DfDependencyCollector.java:156)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.process (DfDependencyCollector.java:138)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.doRecurse (DfDependencyCollector.java:343)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.processDependency (DfDependencyCollector.java:277)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.processDependency (DfDependencyCollector.java:156)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.process (DfDependencyCollector.java:138)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.doRecurse (DfDependencyCollector.java:343)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.processDependency (DfDependencyCollector.java:277)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.processDependency (DfDependencyCollector.java:156)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.process (DfDependencyCollector.java:138)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.doRecurse (DfDependencyCollector.java:343)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.processDependency (DfDependencyCollector.java:277)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.processDependency (DfDependencyCollector.java:156)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.process (DfDependencyCollector.java:138)
at org.eclipse.aether.internal.impl.collect.df.DfDependencyCollector.doRecurse (DfDependencyCollector.java:343)
This is the only stacktrace it reports, and there are no plugin-related packages or classes in the stacktrace.
I have tried to use <dependencyResolutionDepth>DIRECT</dependencyResolutionDepth>, but it results in the same OOME.
I have tried to use <ignoreProjectDependencies>true</ignoreProjectDependencies> - it kind of solves the problem, but it requires to specify <importDependencies> with duplicates of some project dependencies (and it seems it doesn't use dependency management and requires to specify the version explicitly, but that is a separate issue).
Hi!
I am trying to switch from xolstice/protobuf-maven-plugin to ascopes/protobuf-maven-plugin, but getting some unexpected results.
Our setup:
I have configured
<embedSourcesInClassOutputs>true</embedSourcesInClassOutputs>because it matches the default xolstice behaviour.Most modules are OK after switching to ascopes.
Some modules that both have their own proto files and depend on a lot of proto-project artifacts cause OOME.
-X log looks like this:
at this point the log "stops" for some time, and then fails with
This is the only stacktrace it reports, and there are no plugin-related packages or classes in the stacktrace.
I have tried to use
<dependencyResolutionDepth>DIRECT</dependencyResolutionDepth>, but it results in the same OOME.I have tried to use
<ignoreProjectDependencies>true</ignoreProjectDependencies>- it kind of solves the problem, but it requires to specify<importDependencies>with duplicates of some project dependencies (and it seems it doesn't use dependency management and requires to specify the version explicitly, but that is a separate issue).