Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-2110

ArtifactRepositoryLayout isn't extensible

    XMLWordPrintableJSON

Details

    Description

      I'm writing a plugin that (among other tasks) provides a new ArtifactRepositoryLayout suitable for Eclipse repositories. In my META-INF/plexus/components.xml, I have:

      <component>
      <role>org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout</role>
      <role-hint>eclipse</role-hint>
      <implementation>org.apache.maven.artifact.repository.layout.EclipseArtifactRepositoryLayout</implementation>
      </component>

      This plugin is listed in the POM with <extensions>true</extensions>. I would expect that a <repository/> with <layout>eclipse</eclipse> would discover and load this layout provider. Instead, it simply results in an exception. Note that this same components.xml file also defines some lifecycle mappings, which work perfectly.

      [INFO] Trace
      org.apache.maven.reactor.MavenExecutionException: Cannot find layout implementation corresponding to: 'eclipse' for remote repository with id: 'Eclipse Update Site'.
      at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:365)
      ...
      Caused by: org.codehaus.plexus.component.repository.exception.ComponentLookupException: Component descriptor cannot be found in the component repository: org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayouteclipse.
      at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:323)

      Attachments

        Activity

          People

            Unassigned Unassigned
            mbeerman Matthew Beermann
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: