You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Michael Osipov (Jira)" <ji...@apache.org> on 2023/04/17 18:21:00 UTC

[jira] [Commented] (MSITE-849) Unable to inject MavenProject when using `mvn site:run`

    [ https://issues.apache.org/jira/browse/MSITE-849?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17713243#comment-17713243 ] 

Michael Osipov commented on MSITE-849:
--------------------------------------

I can't make it run with Maven Site Plugin 4.0.0-M8 snapshot:
{noformat}
[INFO] Rendering content with org.apache.maven.skins:maven-fluido-skin:jar:1.11.0 skin
[WARNING] Error injecting: org.asciidoctor.maven.site.AsciidoctorDoxiaParserModule
com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) Error injecting constructor, java.lang.NoSuchMethodError: org.apache.maven.doxia.parser.module.AbstractParserModule.<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
  at org.asciidoctor.maven.site.AsciidoctorDoxiaParserModule.<init>(Unknown Source)
  while locating org.asciidoctor.maven.site.AsciidoctorDoxiaParserModule

1 error
    at com.google.inject.internal.InternalProvisionException.toProvisionException (InternalProvisionException.java:226)
    at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1053)
    at com.google.inject.internal.InjectorImpl.getInstance (InjectorImpl.java:1086)
    at org.eclipse.sisu.space.AbstractDeferredClass.get (AbstractDeferredClass.java:48)
    at com.google.inject.internal.ProviderInternalFactory.provision (ProviderInternalFactory.java:85)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision (InternalFactoryToInitializableAdapter.java:57)
    at com.google.inject.internal.ProviderInternalFactory$1.call (ProviderInternalFactory.java:66)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:112)
    at org.eclipse.sisu.bean.BeanScheduler$CycleActivator.onProvision (BeanScheduler.java:230)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:120)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)
    at com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:61)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.get (InternalFactoryToInitializableAdapter.java:47)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get (ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get (SingletonScope.java:168)
{noformat}

There seems to be an API incompat.

> Unable to inject MavenProject when using `mvn site:run`
> -------------------------------------------------------
>
>                 Key: MSITE-849
>                 URL: https://issues.apache.org/jira/browse/MSITE-849
>             Project: Maven Site Plugin
>          Issue Type: New Feature
>    Affects Versions: 3.7.1, 3.8.2
>            Reporter: Abel Salgado Romero
>            Priority: Major
>             Fix For: waiting-for-feedback
>
>         Attachments: site_site.png
>
>
> In https://github.com/asciidoctor/asciidoctor-maven-plugin we inject a MavenProject to obtain addition configurations from the pom.xml (https://github.com/asciidoctor/asciidoctor-maven-plugin/blob/a4d86a949643ab68c124fd4c1b9b936412637d93/src/main/java/org/asciidoctor/maven/site/AsciidoctorDoxiaParser.java#L54).
> This works fine with {{site:site}}, but when using {{site:run}} and accessing one of the Asciidoc generated pages we get the error below.
> I saw that:
> * The error occurs when trying to retrieve the instance of the MavenProject.
> * Behavior is the same if I directly inject the MavenProject instead of using a provider. That is, {{site:site}} works, {{site:run}} fails because it cannot find the instance.
> {code:java}
> HTTP ERROR 500
> Problem accessing /hello.html. Reason:
>     Server Error
> Caused by:
> com.google.inject.ProvisionException: Unable to provision, see the following errors:
> 1) Error in custom provider, com.google.inject.OutOfScopeException: Cannot access Key[type=org.apache.maven.project.MavenProject, annotation=[none]] outside of a scoping block
>   at org.apache.maven.execution.scope.internal.MojoExecutionScopeModule.configure(MojoExecutionScopeModule.java:55) (via modules: org.eclipse.sisu.wire.WireModule -> org.apache.maven.execution.scope.internal.MojoExecutionScopeModule)
>   while locating org.apache.maven.project.MavenProject
> 1 error
> 	at com.google.inject.internal.InternalProvisionException.toProvisionException(InternalProvisionException.java:226)
> 	at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1053)
> 	at org.asciidoctor.maven.site.AsciidoctorDoxiaParser.parse(AsciidoctorDoxiaParser.java:78)
> 	at org.apache.maven.doxia.DefaultDoxia.parse(DefaultDoxia.java:65)
> {code}
> * How to reproduce:
> # clone https://github.com/asciidoctor/asciidoctor-maven-examples
> # cd asciidoc-maven-site-example
> # mvn site:run
> # Access {{http://localhost:8080/hello.html}}
> * Env:
> {code}
> $ mvn -v
> Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T21:00:29+02:00)
> Maven home: /home/----/.sdkman/candidates/maven/current
> Java version: 1.8.0_222, vendor: AdoptOpenJDK, runtime: /home/-----/.sdkman/candidates/java/8.0.222.hs-adpt/jre
> Default locale: en_US, platform encoding: UTF-8
> OS name: "linux", version: "5.1.21-1-manjaro", arch: "amd64", family: "unix
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)