You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Kek (JIRA)" <ji...@codehaus.org> on 2010/01/31 18:20:55 UTC

[jira] Created: (MNG-4553) Plugins artifact filtering should use full Artifact identification instead only ArtifactId

Plugins artifact filtering should use full Artifact identification instead only ArtifactId
------------------------------------------------------------------------------------------

                 Key: MNG-4553
                 URL: http://jira.codehaus.org/browse/MNG-4553
             Project: Maven 2 & 3
          Issue Type: Bug
          Components: Plugins and Lifecycle
    Affects Versions: 2.2.1
         Environment: Windows7, Sun JDK 1.6.0_u18
            Reporter: Kek


I created common module with some abstract parents and Helpers for our Mojos. I named the module as "maven-plugin-api", but the groupId was "org.mycompany.maven".  Than I create "my-maven-plugin" that depends on this common library "org.mycompany.maven:maven-plugin-api". When I try to use the MyMavenPlugin, I get the following message:


[DEBUG]  The following artifacts were filtered out for plugin: org.mycompany.maven:my-maven-plugin:1.0.0-SNAPSHOT because they're already in the core of Maven:

active project artifact:
        artifact = org.mycompany.maven:maven-plugin-api:jar:1.0.0-SNAPSHOT:runtime;
        project: MavenProject: org.mycompany.maven:maven-plugin-api:1.0.0-SNAPSHOT 

These will use the artifact files already in the core ClassRealm instead, to allow them to be included in PluginDescriptor.getArtifacts().


And than build fails with 

Caused by: java.lang.ClassNotFoundException: org.mycompany.maven.mojo.AbstractProjectMojo
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195)
        at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:255)
        at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:274)
        at org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        ... 52 more

After some investigation I found the workaround for this problem - I must rename the shared module "org.mycompany.maven:maven-plugin-api" to ""org.mycompany.maven:MY-maven-plugin-api" so I can not use the artifactId like "maven-plugin-api" because it is already used for core maven modules and therefore my library was filtered out.

But this is not correct behaviour, because the artifactId was the same, but the groupId was different. In my opinion the maven should use the full-id during the Artifact comparation and filtering.



-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Closed: (MNG-4553) Plugins artifact filtering should use full Artifact identification instead only ArtifactId

Posted by "Benjamin Bentmann (JIRA)" <ji...@codehaus.org>.
     [ http://jira.codehaus.org/browse/MNG-4553?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benjamin Bentmann closed MNG-4553.
----------------------------------

       Resolution: Fixed
    Fix Version/s: 3.0-alpha-7
         Assignee: Benjamin Bentmann

Fixed in [r917014|http://svn.apache.org/viewvc?view=revision&revision=917014].

> Plugins artifact filtering should use full Artifact identification instead only ArtifactId
> ------------------------------------------------------------------------------------------
>
>                 Key: MNG-4553
>                 URL: http://jira.codehaus.org/browse/MNG-4553
>             Project: Maven 2 & 3
>          Issue Type: Bug
>          Components: Plugins and Lifecycle
>    Affects Versions: 2.2.1
>         Environment: Windows7, Sun JDK 1.6.0_u18
>            Reporter: Kek
>            Assignee: Benjamin Bentmann
>             Fix For: 3.0-alpha-7
>
>
> I created common module with some abstract parents and Helpers for our Mojos. I named the module as "maven-plugin-api", but the groupId was "org.mycompany.maven".  Than I create "my-maven-plugin" that depends on this common library "org.mycompany.maven:maven-plugin-api". When I try to use the MyMavenPlugin, I get the following message:
> [DEBUG]  The following artifacts were filtered out for plugin: org.mycompany.maven:my-maven-plugin:1.0.0-SNAPSHOT because they're already in the core of Maven:
> active project artifact:
>         artifact = org.mycompany.maven:maven-plugin-api:jar:1.0.0-SNAPSHOT:runtime;
>         project: MavenProject: org.mycompany.maven:maven-plugin-api:1.0.0-SNAPSHOT 
> These will use the artifact files already in the core ClassRealm instead, to allow them to be included in PluginDescriptor.getArtifacts().
> And than build fails with 
> Caused by: java.lang.ClassNotFoundException: org.mycompany.maven.mojo.AbstractProjectMojo
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>         at org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195)
>         at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:255)
>         at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:274)
>         at org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
>         ... 52 more
> After some investigation I found the workaround for this problem - I must rename the shared module "org.mycompany.maven:maven-plugin-api" to ""org.mycompany.maven:MY-maven-plugin-api" so I can not use the artifactId like "maven-plugin-api" because it is already used for core maven modules and therefore my library was filtered out.
> But this is not correct behaviour, because the artifactId was the same, but the groupId was different. In my opinion the maven should use the full-id during the Artifact comparation and filtering.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira