Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
maven-bundle-plugin-2.4.0
-
None
Description
I'm testing the latest svn revision 1355520 (2.4.0-SNAPSHOT) of the maven-bundle-plugin in my project. A MojoExecutionException is thrown when the plugin attempts to embed dependencies that contain resources or classes in the default package. The error message that I see in the logs is "Classes found in the wrong directory: {JDOMAbout$Info.class=long, JDOMAbout.class=long, ". Those two classes are in the default package in that version of the jdom jar.
A warning is also thrown about "Unused Private-Package instructions, no such package(s) on the class path: [!*]". I've included more log output after the sample POM below.
This worked without errors or warnings in release version 2.3.7, so I believe this is a bug.
Here is a minimal POM that reproduces the issue. The dependency that I am testing with is jdom 1.0, but it should apply to any jar that has content in the default package. I've reproduced this error on both maven 3.0.3 and 3.0.4.
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>jdom-wrapper</artifactId> <packaging>bundle</packaging> <name>JDOM Wrapper</name> <version>1.0-SNAPSHOT</version> <build> <plugins> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> <version>2.4.0-SNAPSHOT</version> <!-- <version>2.3.7</version> --> <configuration> <instructions> <Embed-Dependency>jdom;scope=compile</Embed-Dependency> </instructions> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>jdom</groupId> <artifactId>jdom</artifactId> <version>1.0</version> </dependency> </dependencies> </project>
The last bit of output from a mvn bundle:bundle -debug command.
[DEBUG] BND Classpath: #----------------------------------------------------------------------- -classpath:\ /private/tmp/jdom/target/classes,\ /Users/ryan/.m2/repository/jdom/jdom/1.0/jdom-1.0.jar #----------------------------------------------------------------------- [DEBUG] BND Manifest: #----------------------------------------------------------------------- Manifest-Version: 1.0 Bnd-LastModified: 1341512614042 Bundle-ClassPath: .,jdom-1.0.jar Bundle-ManifestVersion: 2 Bundle-Name: JDOM Wrapper Bundle-SymbolicName: com.example.jdom-wrapper Bundle-Version: 1.0.0.SNAPSHOT Created-By: 1.6.0_33 (Apple Inc.) Embed-Dependency: jdom;scope=compile Embed-Transitive: true Embedded-Artifacts: jdom-1.0.jar;g="jdom";a="jdom";v="1.0" Import-Package: javax.xml.parsers,javax.xml.transform,javax.xml.transfor m.sax,javax.xml.transform.stream,oracle.xml.parser,oracle.xml.parser.v2 ,org.apache.xerces.dom,org.apache.xerces.parsers,org.jaxen,org.jaxen.jd om,org.w3c.dom,org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers Tool: Bnd-${Bundle-Version} #----------------------------------------------------------------------- [DEBUG] Final Manifest: #----------------------------------------------------------------------- Manifest-Version: 1.0 Bnd-LastModified: 1341512614042 Build-Jdk: 1.6.0_33 Built-By: ryan Bundle-ClassPath: .,jdom-1.0.jar Bundle-ManifestVersion: 2 Bundle-Name: JDOM Wrapper Bundle-SymbolicName: com.example.jdom-wrapper Bundle-Version: 1.0.0.SNAPSHOT Created-By: Apache Maven Bundle Plugin Embed-Dependency: jdom;scope=compile Embed-Transitive: true Embedded-Artifacts: jdom-1.0.jar;g="jdom";a="jdom";v="1.0" Import-Package: javax.xml.parsers,javax.xml.transform,javax.xml.transfor m.sax,javax.xml.transform.stream,oracle.xml.parser,oracle.xml.parser.v2 ,org.apache.xerces.dom,org.apache.xerces.parsers,org.jaxen,org.jaxen.jd om,org.w3c.dom,org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers Tool: Bnd-${Bundle-Version} #----------------------------------------------------------------------- [WARNING] Bundle com.example:jdom-wrapper:bundle:1.0-SNAPSHOT : Unused Private-Package instructions, no such package(s) on the class path: [!*] [ERROR] Bundle com.example:jdom-wrapper:bundle:1.0-SNAPSHOT : Classes found in the wrong directory: {JDOMAbout$Info.class=long, JDOMAbout.class=long, JDOMAbout$Author.class=long} [ERROR] Error(s) found in bundle configuration [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.796s [INFO] Finished at: Thu Jul 05 11:23:34 PDT 2012 [INFO] Final Memory: 5M/81M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.felix:maven-bundle-plugin:2.4.0-SNAPSHOT:bundle (default-cli) on project jdom-wrapper: Error(s) found in bundle configuration -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.felix:maven-bundle-plugin:2.4.0-SNAPSHOT:bundle (default-cli) on project jdom-wrapper: Error(s) found in bundle configuration at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) Caused by: org.apache.maven.plugin.MojoExecutionException: Error(s) found in bundle configuration at org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:407) at org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:264) at org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:255) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) ... 19 more Caused by: org.apache.maven.plugin.MojoFailureException: Error(s) found in bundle configuration at org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:356) ... 23 more [ERROR] [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException