protobuf-maven-plugin icon indicating copy to clipboard operation
protobuf-maven-plugin copied to clipboard

[Bug]: Dependency on Plexus Utils when using Maven Cache extension

Open ascopes opened this issue 11 months ago • 8 comments
trafficstars

Brief description

The use of the Maven Build Cache extension appears to force a dependency for this plugin on plexus-utils.

This appears to be a bug with that extension, but this issue is raised to track any further developments.

Steps to reproduce

Run a build with the Maven Build Cache extension activated, and observe the plugin initialisation errors from the Protobuf Maven Plugin.

Error message

[ERROR] org.apache.maven.plugin.PluginContainerException: Unable to load the mojo 'generate' (or one of its required components) from the plugin 'io.github.ascopes:protobuf-maven-plugin:2.7.0': com.google.inject.ProvisionException: Unable to provision, see the following errors:
[ERROR] 
[ERROR] 1) [Guice/ErrorInCustomProvider]: IllegalStateException
[ERROR]   at MojoExecutionScopeModule.configure(MojoExecutionScopeModule.java:50)
[ERROR]       \_ installed by: WireModule -> MojoExecutionScopeModule
[ERROR]   at TemporarySpace.<init>(TemporarySpace.java:45)
[ERROR]       \_ for 2nd parameter
[ERROR]   at UrlResourceFetcher.<init>(UrlResourceFetcher.java:65)
[ERROR]       \_ for 1st parameter
[ERROR]   at ProtocResolver.<init>(ProtocResolver.java:63)
[ERROR]       \_ for 5th parameter
[ERROR]   at ProtobufBuildOrchestrator.<init>(ProtobufBuildOrchestrator.java:71)
[ERROR]       \_ for 2nd parameter
[ERROR]   at AbstractGenerateMojo.sourceCodeGenerator(AbstractGenerateMojo.java:71)
[ERROR]       \_ for field sourceCodeGenerator
[ERROR]   while locating MainGenerateMojo
[ERROR]   at ClassRealm[plugin>io.github.ascopes:protobuf-maven-plugin:2.7.0, parent: ClassLoaders$AppClassLoader@531d72ca]
[ERROR]       \_ installed by: WireModule -> PlexusBindingModule
[ERROR]   while locating Mojo annotated with @Named("io.github.ascopes:protobuf-maven-plugin:2.7.0:generate")
[ERROR] 
[ERROR] Learn more:
[ERROR]   https://github.com/google/guice/wiki/ERROR_IN_CUSTOM_PROVIDER
[ERROR] 
[ERROR] 1 error
[ERROR] 
[ERROR] ======================
[ERROR] Full classname legend:
[ERROR] ======================
[ERROR] AbstractGenerateMojo:        "io.github.ascopes.protobufmavenplugin.mojo.AbstractGenerateMojo"
[ERROR] ClassLoaders$AppClassLoader: "jdk.internal.loader.ClassLoaders$AppClassLoader"
[ERROR] MainGenerateMojo:            "io.github.ascopes.protobufmavenplugin.mojo.MainGenerateMojo"
[ERROR] Mojo:                        "org.apache.maven.plugin.Mojo"
[ERROR] MojoExecutionScopeModule:    "org.apache.maven.execution.scope.internal.MojoExecutionScopeModule"
[ERROR] Named:                       "com.google.inject.name.Named"
[ERROR] PlexusBindingModule:         "org.eclipse.sisu.plexus.PlexusBindingModule"
[ERROR] ProtobufBuildOrchestrator:   "io.github.ascopes.protobufmavenplugin.generation.ProtobufBuildOrchestrator"
[ERROR] ProtocResolver:              "io.github.ascopes.protobufmavenplugin.protoc.ProtocResolver"
[ERROR] TemporarySpace:              "io.github.ascopes.protobufmavenplugin.utils.TemporarySpace"
[ERROR] UrlResourceFetcher:          "io.github.ascopes.protobufmavenplugin.dependencies.UrlResourceFetcher"
[ERROR] WireModule:                  "org.eclipse.sisu.wire.WireModule"
[ERROR] ========================
[ERROR] End of classname legend:
[ERROR] ========================
[ERROR] 
[ERROR]       role: org.apache.maven.plugin.Mojo
[ERROR]   roleHint: io.github.ascopes:protobuf-maven-plugin:2.7.0:generate
[ERROR] java.lang.RuntimeException: org.apache.maven.plugin.PluginContainerException: Unable to load the mojo 'generate' (or one of its required components) from the plugin 'io.github.ascopes:protobuf-maven-plugin:2.7.0': com.google.inject.ProvisionException: Unable to provision, see the following errors:
[ERROR] 
[ERROR] 1) [Guice/ErrorInCustomProvider]: IllegalStateException
[ERROR]   at MojoExecutionScopeModule.configure(MojoExecutionScopeModule.java:50)
[ERROR]       \_ installed by: WireModule -> MojoExecutionScopeModule
[ERROR]   at TemporarySpace.<init>(TemporarySpace.java:45)
[ERROR]       \_ for 2nd parameter
[ERROR]   at UrlResourceFetcher.<init>(UrlResourceFetcher.java:65)
[ERROR]       \_ for 1st parameter
[ERROR]   at ProtocResolver.<init>(ProtocResolver.java:63)
[ERROR]       \_ for 5th parameter
[ERROR]   at ProtobufBuildOrchestrator.<init>(ProtobufBuildOrchestrator.java:71)
[ERROR]       \_ for 2nd parameter
[ERROR]   at AbstractGenerateMojo.sourceCodeGenerator(AbstractGenerateMojo.java:71)
[ERROR]       \_ for field sourceCodeGenerator
[ERROR]   while locating MainGenerateMojo
[ERROR]   at ClassRealm[plugin>io.github.ascopes:protobuf-maven-plugin:2.7.0, parent: ClassLoaders$AppClassLoader@531d72ca]
[ERROR]       \_ installed by: WireModule -> PlexusBindingModule
[ERROR]   while locating Mojo annotated with @Named("io.github.ascopes:protobuf-maven-plugin:2.7.0:generate")
[ERROR] 
[ERROR] Learn more:
[ERROR]   https://github.com/google/guice/wiki/ERROR_IN_CUSTOM_PROVIDER
[ERROR] 
[ERROR] 1 error
[ERROR] 
[ERROR] ======================
[ERROR] Full classname legend:
[ERROR] ======================
[ERROR] AbstractGenerateMojo:        "io.github.ascopes.protobufmavenplugin.mojo.AbstractGenerateMojo"
[ERROR] ClassLoaders$AppClassLoader: "jdk.internal.loader.ClassLoaders$AppClassLoader"
[ERROR] MainGenerateMojo:            "io.github.ascopes.protobufmavenplugin.mojo.MainGenerateMojo"
[ERROR] Mojo:                        "org.apache.maven.plugin.Mojo"
[ERROR] MojoExecutionScopeModule:    "org.apache.maven.execution.scope.internal.MojoExecutionScopeModule"
[ERROR] Named:                       "com.google.inject.name.Named"
[ERROR] PlexusBindingModule:         "org.eclipse.sisu.plexus.PlexusBindingModule"
[ERROR] ProtobufBuildOrchestrator:   "io.github.ascopes.protobufmavenplugin.generation.ProtobufBuildOrchestrator"
[ERROR] ProtocResolver:              "io.github.ascopes.protobufmavenplugin.protoc.ProtocResolver"
[ERROR] TemporarySpace:              "io.github.ascopes.protobufmavenplugin.utils.TemporarySpace"
[ERROR] UrlResourceFetcher:          "io.github.ascopes.protobufmavenplugin.dependencies.UrlResourceFetcher"
[ERROR] WireModule:                  "org.eclipse.sisu.wire.WireModule"
[ERROR] ========================
[ERROR] End of classname legend:
[ERROR] ========================
[ERROR] 
[ERROR]       role: org.apache.maven.plugin.Mojo
[ERROR]   roleHint: io.github.ascopes:protobuf-maven-plugin:2.7.0:generate
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.

Logs

[INFO] Skipping plugin execution (cached): protobuf:generate
[DEBUG] Dependency collection stats {ConflictMarker.analyzeTime=9250, ConflictMarker.markTime=13625, ConflictMarker.nodeCount=5, ConflictIdSorter.graphTime=5500, ConflictIdSorter.topsortTime=7750, ConflictIdSorter.conflictIdCount=5, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=61250, ConflictResolver.conflictItemCount=5, DfDependencyCollector.collectTime=7003000, DfDependencyCollector.transformTime=111833}
[DEBUG] io.github.ascopes:protobuf-maven-plugin:jar:2.7.0
[DEBUG]    com.fasterxml.jackson.core:jackson-databind:jar:2.18.1:compile
[DEBUG]       com.fasterxml.jackson.core:jackson-annotations:jar:2.18.1:compile (version managed from default)
[DEBUG]       com.fasterxml.jackson.core:jackson-core:jar:2.18.1:compile (version managed from default)
[DEBUG]    javax.annotation:javax.annotation-api:jar:1.3.2:compile
[DEBUG] Created new class realm plugin>io.github.ascopes:protobuf-maven-plugin:2.7.0
[DEBUG] Importing foreign packages into class realm plugin>io.github.ascopes:protobuf-maven-plugin:2.7.0
[DEBUG]   Imported:  < project>com.spxxx:proto:0.0.1-SNAPSHOT
[DEBUG] Populating class realm plugin>io.github.ascopes:protobuf-maven-plugin:2.7.0
[DEBUG]   Included: io.github.ascopes:protobuf-maven-plugin:jar:2.7.0
[DEBUG]   Included: com.fasterxml.jackson.core:jackson-databind:jar:2.18.1
[DEBUG]   Included: com.fasterxml.jackson.core:jackson-annotations:jar:2.18.1
[DEBUG]   Included: com.fasterxml.jackson.core:jackson-core:jar:2.18.1
[DEBUG] Loading mojo io.github.ascopes:protobuf-maven-plugin:2.7.0:generate from plugin realm ClassRealm[plugin>io.github.ascopes:protobuf-maven-plugin:2.7.0, parent: jdk.internal.loader.ClassLoaders$AppClassLoader@531d72ca]
[DEBUG] Reported OS is Mac OS X
[DEBUG] Reported CPU architecture is aarch64
[DEBUG] Reported java.home is /Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home
[DEBUG] Parsed PATH environment variable to [/Users/debrajmanna/.jenv/shims, /Users/debrajmanna/.pyenv/shims, /Users/debrajmanna/.nvm/versions/node/v19.6.0/bin, /Users/debrajmanna/binaries, /Users/debrajmanna/.local/bin, /opt/kotlinc/bin, /opt/gradle-8.8/bin, /opt/apache-maven-3.9.9/bin, /Applications/Sublime Text.app/Contents/SharedSupport/bin, /opt/homebrew/bin, /opt/homebrew/sbin, /usr/local/bin, /System/Cryptexes/App/usr/bin, /usr/bin, /bin, /usr/sbin, /sbin]
[DEBUG] Parsed PATHEXT environment variable to []
[DEBUG] Injected artifact handler org.apache.maven.artifact.handler.DefaultArtifactHandler$__sisu20@6b0bba7a
[DEBUG] Detected remote repositories as [central (https://repo.maven.apache.org/maven2, default, releases), jcentral (https://jcenter.bintray.com, default, releases), github (https://maven.pkg.github.com/Spotnana-Tech/codegen, default, releases+snapshots)]
[WARNING] Error injecting: io.github.ascopes.protobufmavenplugin.mojo.MainGenerateMojo
com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) [Guice/ErrorInCustomProvider]: IllegalStateException
  at MojoExecutionScopeModule.configure(MojoExecutionScopeModule.java:50)
      \_ installed by: WireModule -> MojoExecutionScopeModule
  at TemporarySpace.<init>(TemporarySpace.java:45)
      \_ for 2nd parameter
  at UrlResourceFetcher.<init>(UrlResourceFetcher.java:65)
      \_ for 1st parameter
  at ProtocResolver.<init>(ProtocResolver.java:63)
      \_ for 5th parameter
  at ProtobufBuildOrchestrator.<init>(ProtobufBuildOrchestrator.java:71)
      \_ for 2nd parameter
  at AbstractGenerateMojo.sourceCodeGenerator(AbstractGenerateMojo.java:71)
      \_ for field sourceCodeGenerator
  while locating MainGenerateMojo

Learn more:
  https://github.com/google/guice/wiki/ERROR_IN_CUSTOM_PROVIDER

1 error

======================
Full classname legend:
======================
AbstractGenerateMojo:      "io.github.ascopes.protobufmavenplugin.mojo.AbstractGenerateMojo"
MainGenerateMojo:          "io.github.ascopes.protobufmavenplugin.mojo.MainGenerateMojo"
MojoExecutionScopeModule:  "org.apache.maven.execution.scope.internal.MojoExecutionScopeModule"
ProtobufBuildOrchestrator: "io.github.ascopes.protobufmavenplugin.generation.ProtobufBuildOrchestrator"
ProtocResolver:            "io.github.ascopes.protobufmavenplugin.protoc.ProtocResolver"
TemporarySpace:            "io.github.ascopes.protobufmavenplugin.utils.TemporarySpace"
UrlResourceFetcher:        "io.github.ascopes.protobufmavenplugin.dependencies.UrlResourceFetcher"
WireModule:                "org.eclipse.sisu.wire.WireModule"
========================
End of classname legend:
========================

    at com.google.inject.internal.InternalProvisionException.toProvisionException (InternalProvisionException.java:251)
    at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1104)
    at com.google.inject.internal.InjectorImpl.getInstance (InjectorImpl.java:1139)
    at org.eclipse.sisu.space.AbstractDeferredClass.get (AbstractDeferredClass.java:50)
    at com.google.inject.internal.ProviderInternalFactory.provision (ProviderInternalFactory.java:86)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision (InternalFactoryToInitializableAdapter.java:57)
    at com.google.inject.internal.ProviderInternalFactory$1.call (ProviderInternalFactory.java:67)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:109)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:124)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
    at com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:62)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.get (InternalFactoryToInitializableAdapter.java:47)
    at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1101)
    at org.eclipse.sisu.inject.Guice4$2.get (Guice4.java:235)
    at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:83)
    at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:53)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:265)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:257)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:491)
    at org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.restoreProject (BuildCacheMojosExecutionStrategy.java:277)
    at org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.execute (BuildCacheMojosExecutionStrategy.java:136)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:193)
    at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:180)
    at java.util.concurrent.FutureTask.run (FutureTask.java:264)
    at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:539)
    at java.util.concurrent.FutureTask.run (FutureTask.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1136)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:635)
    at java.lang.Thread.run (Thread.java:833)
Caused by: java.lang.IllegalStateException
    at org.apache.maven.execution.scope.internal.MojoExecutionScope$1.get (MojoExecutionScope.java:43)
    at com.google.inject.internal.ProviderInternalFactory.provision (ProviderInternalFactory.java:86)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision (InternalFactoryToInitializableAdapter.java:57)
    at com.google.inject.internal.ProviderInternalFactory$1.call (ProviderInternalFactory.java:67)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:109)
    at org.eclipse.sisu.bean.BeanScheduler$CycleActivator.onProvision (BeanScheduler.java:232)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:117)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
    at com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:62)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.get (InternalFactoryToInitializableAdapter.java:47)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get (ProviderToInternalFactoryAdapter.java:40)
    at org.apache.maven.execution.scope.internal.MojoExecutionScope$2.get (MojoExecutionScope.java:112)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get (InternalFactoryToProviderAdapter.java:45)
    at com.google.inject.internal.SingleParameterInjector.inject (SingleParameterInjector.java:40)
    at com.google.inject.internal.SingleParameterInjector.getAll (SingleParameterInjector.java:60)
    at com.google.inject.internal.ConstructorInjector.provision (ConstructorInjector.java:113)
    at com.google.inject.internal.ConstructorInjector.access$000 (ConstructorInjector.java:33)
    at com.google.inject.internal.ConstructorInjector$1.call (ConstructorInjector.java:98)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:109)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:124)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
    at com.google.inject.internal.ConstructorInjector.construct (ConstructorInjector.java:93)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get (ConstructorBindingImpl.java:300)
    at com.google.inject.internal.SingleParameterInjector.inject (SingleParameterInjector.java:40)
    at com.google.inject.internal.SingleParameterInjector.getAll (SingleParameterInjector.java:60)
    at com.google.inject.internal.ConstructorInjector.provision (ConstructorInjector.java:113)
    at com.google.inject.internal.ConstructorInjector.access$000 (ConstructorInjector.java:33)
    at com.google.inject.internal.ConstructorInjector$1.call (ConstructorInjector.java:98)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:109)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:124)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
    at com.google.inject.internal.ConstructorInjector.construct (ConstructorInjector.java:93)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get (ConstructorBindingImpl.java:300)
    at com.google.inject.internal.SingleParameterInjector.inject (SingleParameterInjector.java:40)
    at com.google.inject.internal.SingleParameterInjector.getAll (SingleParameterInjector.java:60)
    at com.google.inject.internal.ConstructorInjector.provision (ConstructorInjector.java:113)
    at com.google.inject.internal.ConstructorInjector.access$000 (ConstructorInjector.java:33)
    at com.google.inject.internal.ConstructorInjector$1.call (ConstructorInjector.java:98)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:109)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:124)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
    at com.google.inject.internal.ConstructorInjector.construct (ConstructorInjector.java:93)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get (ConstructorBindingImpl.java:300)
    at com.google.inject.internal.SingleParameterInjector.inject (SingleParameterInjector.java:40)
    at com.google.inject.internal.SingleParameterInjector.getAll (SingleParameterInjector.java:60)
    at com.google.inject.internal.ConstructorInjector.provision (ConstructorInjector.java:113)
    at com.google.inject.internal.ConstructorInjector.access$000 (ConstructorInjector.java:33)
    at com.google.inject.internal.ConstructorInjector$1.call (ConstructorInjector.java:98)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:109)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:124)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
    at com.google.inject.internal.ConstructorInjector.construct (ConstructorInjector.java:93)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get (ConstructorBindingImpl.java:300)
    at com.google.inject.internal.SingleFieldInjector.inject (SingleFieldInjector.java:50)
    at com.google.inject.internal.MembersInjectorImpl.injectMembers (MembersInjectorImpl.java:146)
    at com.google.inject.internal.ConstructorInjector.provision (ConstructorInjector.java:124)
    at com.google.inject.internal.ConstructorInjector.access$000 (ConstructorInjector.java:33)
    at com.google.inject.internal.ConstructorInjector$1.call (ConstructorInjector.java:98)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:109)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:124)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
    at com.google.inject.internal.ConstructorInjector.construct (ConstructorInjector.java:93)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get (ConstructorBindingImpl.java:300)
    at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1101)
    at com.google.inject.internal.InjectorImpl.getInstance (InjectorImpl.java:1139)
    at org.eclipse.sisu.space.AbstractDeferredClass.get (AbstractDeferredClass.java:50)
    at com.google.inject.internal.ProviderInternalFactory.provision (ProviderInternalFactory.java:86)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision (InternalFactoryToInitializableAdapter.java:57)
    at com.google.inject.internal.ProviderInternalFactory$1.call (ProviderInternalFactory.java:67)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:109)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:124)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
    at com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:62)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.get (InternalFactoryToInitializableAdapter.java:47)
    at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1101)
    at org.eclipse.sisu.inject.Guice4$2.get (Guice4.java:235)
    at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:83)
    at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:53)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:265)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:257)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:491)
    at org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.restoreProject (BuildCacheMojosExecutionStrategy.java:277)
    at org.apache.maven.buildcache.BuildCacheMojosExecutionStrategy.execute (BuildCacheMojosExecutionStrategy.java:136)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:193)
    at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:180)
    at java.util.concurrent.FutureTask.run (FutureTask.java:264)
    at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:539)
    at java.util.concurrent.FutureTask.run (FutureTask.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1136)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:635)
    at java.lang.Thread.run (Thread.java:833)

Operating system

macOS

JDK version

21

Maven version

3.9.9

Plugin version

2.7.0

Protoc version

3.24.0

Additional details

See https://github.com/ascopes/protobuf-maven-plugin/discussions/470 for the initial discussion.

See https://issues.apache.org/jira/browse/MBUILDCACHE-110 for the JIRA raised with Apache.

Would you like to contribute a bugfix?

  • [ ] Yes, I'd like to contribute a bugfix!

ascopes avatar Nov 26 '24 08:11 ascopes

This appears to possibly be a bug in the Maven Build Cache plugin. @debraj-manna since you found this initially... would it be possible to raise this on that project as well on their issue tracker? Happy to work with them to find the cause of this but I do not have experience using that extension.

ascopes avatar Nov 26 '24 08:11 ascopes

I have raised the below issue.

https://issues.apache.org/jira/browse/MBUILDCACHE-110

debraj-manna avatar Nov 26 '24 11:11 debraj-manna

Thanks!

ascopes avatar Nov 26 '24 12:11 ascopes

You can add protocArtifact tag to set protoc option:

<configuration>
    <protocVersion>${protobuf.version}</protocVersion>
    <protocArtifact>com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}</protocArtifact>
    
    <binaryMavenPlugins>
        <binaryMavenPlugin>
            <groupId>io.grpc</groupId>
            <artifactId>protoc-gen-grpc-java</artifactId>
        </binaryMavenPlugin>
    </binaryMavenPlugins>

    <jvmMavenPlugins>
        <jvmMavenPlugin>
            <groupId>com.salesforce.servicelibs</groupId>
            <artifactId>reactor-grpc</artifactId>
            <version>${reactor-grpc.version}</version>
        </jvmMavenPlugin>
    </jvmMavenPlugins>
</configuration>

org.xolstice.maven.plugins config:

<build>
    <plugins>
        <plugin>
            <groupId>org.xolstice.maven.plugins</groupId>
            <artifactId>protobuf-maven-plugin</artifactId>
            <version>0.6.1</version>
            <configuration>
                <protocArtifact>com.google.protobuf:protoc:4.29.0:exe:${os.detected.classifier}</protocArtifact>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                        <goal>compile-custom</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

zoujiaqing avatar Nov 30 '24 19:11 zoujiaqing

@zoujiaqing protocArtifact isn't an option in this plugin. Not sure this relates to this problem though?

ascopes avatar Nov 30 '24 19:11 ascopes

Sorry! I misunderstood! This project doesn't have that problem.

zoujiaqing avatar Dec 01 '24 12:12 zoujiaqing

Reported as https://issues.apache.org/jira/browse/MBUILDCACHE-115 IMHO this has nothing to do with plexus-utils. What made you think it is about plexus-utils?

cstamas avatar Jan 15 '25 09:01 cstamas

From the initial discussion at https://github.com/ascopes/protobuf-maven-plugin/discussions/470, seems that adding plexus-utils as a dependency resolves the issue in this case, or at the very least hides it.

Thanks for raising the issue.

ascopes avatar Jan 15 '25 14:01 ascopes

Since this definitely looks like an issue in the Maven extension rather than our implementation here, I am going to close this for now since there is nothing to action on my side.

I'll try to keep an eye on the JIRA and linked issues in case it does turn out we need to make a change.

If any other problems or queries come up, please either comment here again or raise a new issue. Thanks!

ascopes avatar Jun 02 '25 07:06 ascopes

@debraj-manna looks like a fix has been made on Maven's side for this. I've removed the known issue from the docs on my side now.

If you have any other issues, please let me know! 😄

ascopes avatar Aug 11 '25 11:08 ascopes

(also, thanks @cstamas for helping triage this)

ascopes avatar Aug 11 '25 11:08 ascopes