Plexus Components

IncompatibleClassChangeError for plexus' ConsoleLogger class when enforcing the newest versions for plexus-archiver and plexus-io for the maven assembly plugin

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Critical Critical
  • Resolution: Fixed
  • Affects Version/s: None
  • Fix Version/s: None
  • Component/s: plexus-archiver
  • Labels:
    None
  • Environment:
    Maven version: 2.0.9
    Java version: 1.6.0_07
    OS name: "mac os x" version: "10.5.6" arch: "x86_64" Family: "mac"
  • Number of attachments :
    0

Description

A configuration like this:

<plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-assembly-plugin</artifactId>
       <version>2.2-beta-3</version>
       <dependencies>
	    <dependency>
	      <groupId>org.codehaus.plexus</groupId>
	      <artifactId>plexus-archiver</artifactId>
	      <version>1.0-alpha-11</version>
	    </dependency>
	    <dependency>
	      <groupId>org.codehaus.plexus</groupId>
	      <artifactId>plexus-io</artifactId>
	      <version>1.0-alpha-3</version>
	    </dependency>
	   </dependencies>
       <configuration>
         <tarLongFileMode>gnu</tarLongFileMode>
       </configuration>
       <executions>
         <execution>
           <id>assemble</id>
           <goals>
             <goal>single</goal>
           </goals>
           <phase>package</phase>
           <configuration>
             <descriptors>
               <descriptor>assembly.xml</descriptor>
             </descriptors>
           </configuration>
         </execution>
       </executions>
     </plugin>

will result in this error:

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - testproject2:testproject2:pom:1.0
[INFO]    task-segment: [package]
[INFO] ------------------------------------------------------------------------
[INFO] [site:attach-descriptor]
[INFO] [assembly:single {execution: assemble}]
[FATAL ERROR] org.apache.maven.plugin.assembly.mojos.SingleAssemblyMojo#execute() caused a linkage error (java.lang.IncompatibleClassChangeError) and may be out-of-date. Check the realms:
[FATAL ERROR] Plugin realm = app0.child-container[org.apache.maven.plugins:maven-assembly-plugin]
urls[0] = file:/Users/tomdz/.m2/repository/org/apache/maven/plugins/maven-assembly-plugin/2.2-beta-3/maven-assembly-plugin-2.2-beta-3.jar
urls[1] = file:/Users/tomdz/.m2/repository/org/codehaus/plexus/plexus-io/1.0-alpha-3/plexus-io-1.0-alpha-3.jar
urls[2] = file:/Users/tomdz/.m2/repository/org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.jar
urls[3] = file:/Users/tomdz/.m2/repository/org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.jar
urls[4] = file:/Users/tomdz/.m2/repository/org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.jar
urls[5] = file:/Users/tomdz/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar
urls[6] = file:/Users/tomdz/.m2/repository/org/codehaus/plexus/plexus-archiver/1.0-alpha-11/plexus-archiver-1.0-alpha-11.jar
urls[7] = file:/Users/tomdz/.m2/repository/org/apache/maven/shared/maven-common-artifact-filters/1.1/maven-common-artifact-filters-1.1.jar
urls[8] = file:/Users/tomdz/.m2/repository/org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.jar
urls[9] = file:/Users/tomdz/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.7/plexus-interpolation-1.7.jar
urls[10] = file:/Users/tomdz/.m2/repository/org/apache/maven/shared/file-management/1.1/file-management-1.1.jar
urls[11] = file:/Users/tomdz/.m2/repository/org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar
urls[12] = file:/Users/tomdz/.m2/repository/org/codehaus/plexus/plexus-active-collections/1.0-beta-2/plexus-active-collections-1.0-beta-2.jar
urls[13] = file:/Users/tomdz/.m2/repository/org/apache/maven/maven-archiver/2.4/maven-archiver-2.4.jar
urls[14] = file:/Users/tomdz/.m2/repository/org/apache/maven/shared/maven-repository-builder/1.0-alpha-2/maven-repository-builder-1.0-alpha-2.jar
[FATAL ERROR] Container realm = plexus.core
urls[0] = file:/opt/local/share/java/maven2/lib/maven-2.0.9-uber.jar
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Class org.codehaus.plexus.logging.console.ConsoleLogger does not implement the requested interface org.codehaus.plexus.logging.Logger
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.IncompatibleClassChangeError: Class org.codehaus.plexus.logging.console.ConsoleLogger does not implement the requested interface org.codehaus.plexus.logging.Logger
	at org.apache.maven.plugin.assembly.io.DefaultAssemblyReader.readAssemblies(DefaultAssemblyReader.java:139)
	at org.apache.maven.plugin.assembly.mojos.AbstractAssemblyMojo.execute(AbstractAssemblyMojo.java:328)
	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
	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.classworlds.Launcher.launchEnhanced(Launcher.java:315)
	at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
	at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
	at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Fri Feb 13 11:40:43 PST 2009
[INFO] Final Memory: 19M/45M
[INFO] ------------------------------------------------------------------------

Issue Links

Activity

Hide
Thomas Dudziak added a comment -

This can only be avoided by explicitly excluding plexus-component-api:

<plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-assembly-plugin</artifactId>
       <version>2.2-beta-3</version>
       <dependencies>
	    <dependency>
	      <groupId>org.codehaus.plexus</groupId>
	      <artifactId>plexus-archiver</artifactId>
	      <version>1.0-alpha-11</version>
	      <exclusions>
		    <exclusion>
		      <groupId>org.codehaus.plexus</groupId>
		      <artifactId>plexus-component-api</artifactId>
			</exclusion>
		  </exclusions>
	    </dependency>
	    <dependency>
	      <groupId>org.codehaus.plexus</groupId>
	      <artifactId>plexus-io</artifactId>
	      <version>1.0-alpha-3</version>
	      <exclusions>
		    <exclusion>
		      <groupId>org.codehaus.plexus</groupId>
		      <artifactId>plexus-component-api</artifactId>
			</exclusion>
		  </exclusions>
	    </dependency>
	   </dependencies>
       <configuration>
         <tarLongFileMode>gnu</tarLongFileMode>
       </configuration>
       <executions>
         <execution>
           <id>assemble</id>
           <goals>
             <goal>single</goal>
           </goals>
           <phase>package</phase>
           <configuration>
             <descriptors>
               <descriptor>assembly.xml</descriptor>
             </descriptors>
           </configuration>
         </execution>
       </executions>
     </plugin>
Show
Thomas Dudziak added a comment - This can only be avoided by explicitly excluding plexus-component-api:
<plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-assembly-plugin</artifactId>
       <version>2.2-beta-3</version>
       <dependencies>
	    <dependency>
	      <groupId>org.codehaus.plexus</groupId>
	      <artifactId>plexus-archiver</artifactId>
	      <version>1.0-alpha-11</version>
	      <exclusions>
		    <exclusion>
		      <groupId>org.codehaus.plexus</groupId>
		      <artifactId>plexus-component-api</artifactId>
			</exclusion>
		  </exclusions>
	    </dependency>
	    <dependency>
	      <groupId>org.codehaus.plexus</groupId>
	      <artifactId>plexus-io</artifactId>
	      <version>1.0-alpha-3</version>
	      <exclusions>
		    <exclusion>
		      <groupId>org.codehaus.plexus</groupId>
		      <artifactId>plexus-component-api</artifactId>
			</exclusion>
		  </exclusions>
	    </dependency>
	   </dependencies>
       <configuration>
         <tarLongFileMode>gnu</tarLongFileMode>
       </configuration>
       <executions>
         <execution>
           <id>assemble</id>
           <goals>
             <goal>single</goal>
           </goals>
           <phase>package</phase>
           <configuration>
             <descriptors>
               <descriptor>assembly.xml</descriptor>
             </descriptors>
           </configuration>
         </execution>
       </executions>
     </plugin>
Hide
Kristian Rosenvold added a comment -

This exclusion has been in place for "some time" now.

Show
Kristian Rosenvold added a comment - This exclusion has been in place for "some time" now.

People

Vote (2)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: