[ http://jira.codehaus.org/browse/MNG-2795?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_87195 ]
Fabrice BELLINGARD commented on MNG-2795: ----------------------------------------- OK, I have isolated the problem. Here it is. I have a project "Checkstyle-config" that creates a JAR which contains a Checkstyle configuration file (called "MyConventions.xml"). I have another project "TestProject" that references this JAR in the build extensions and that configures the checkstyle plugin to use "MyConventions.xml" as the config file. Build the "Checkstyle-config" project with "mvn install", then run "mvn checkstyle:checkstyle" on the "TestProject" Java project. Everything works fine. Now, imagine that you develop custom Checks that you bundle in the "Checkstyle-config" JAR along with the configuration file. To be able to do so, you need to define, in that project, some dependencies (Checkstyle API dependency). Rebuild the "Checkstyle-config" project with "mvn install" (you will get a JAR containing "MyConventions.xml" and the custom checks binaries). Then run "mvn checkstyle:checkstyle" on the "TestProject" Java project. With Maven 2.0.4, there's no error, but with 2.0.5, the build fails and the log says: {code} Embedded error: Unable to find configuration file location. Unable to find location 'MyConventions.xml' as URL, File or Resource. {code} I will attach the projects I've described so that you can try to reproduce it. You just need to comment/uncomment the dependencies to see the build fail or not. HTH > Classloader problem loading a resource from a build extension Jar : > difference between 2.0.4 and (future) 2.0.5 > --------------------------------------------------------------------------------------------------------------- > > Key: MNG-2795 > URL: http://jira.codehaus.org/browse/MNG-2795 > Project: Maven 2 > Issue Type: Bug > Affects Versions: 2.0.5 > Reporter: Fabrice BELLINGARD > Fix For: 2.0.5 > > Attachments: Checkstyle-2.0.4.txt, Checkstyle-2.0.5.txt > > > I had a problem when executing the Checkstyle plugin (version 2.1) with the > pre-release of Maven 2.0.5. So I dug a bit to see if this could be related to > maven core or not, and here is what I found. > I isolated the code that breaks the build in the checkstyle plugin: it > happens when the plugin tries to load my Checkstyle configuration file, which > is actually located in a JAR that is specified in the build extensions. The > code lies in the Locator#resolveLocation() method: > // Attempt a Resource. > URL url = this.getClass().getClassLoader().getResource( > location ); > This code returns null for the "url" variable, which in turns breaks the > plugin because it doesn't find any configuration file. > I haven't had the time to dig more into it, but I found the following issue > that might be related to this problem: "MNG-2228 : Classloader problem > loading jars from build extensions". Brett and Carlos worked on it and fixed > it, so maybe they could tell more about it. > I attached the logs of the execution with Maven 2.0.4 (which works fine) and > Maven 2.0.5 (which breaks). I haven't had the time yet to dig further into > that problem. -- 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