Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Cannot Reproduce
-
Affects Version/s: 3.0.3
-
Fix Version/s: None
-
Component/s: Class Loading, Embedding
-
Labels:None
-
Environment:HideApache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
Java version: 1.6.0_16
Java home: C:\Programme\Java\jdk1.6.0_16\jre
Default locale: de_DE, platform encoding: Cp1252
OS name: "windows 7" version: "6.1" arch: "x86" Family: "windows"ShowApache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200) Java version: 1.6.0_16 Java home: C:\Programme\Java\jdk1.6.0_16\jre Default locale: de_DE, platform encoding: Cp1252 OS name: "windows 7" version: "6.1" arch: "x86" Family: "windows"
-
Complexity:Intermediate
-
Number of attachments :
Description
I want to use MavenCli in order to use Maven programatically within an installer (IzPack).
pom.xml (see attachment).
I'm using
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-embedder</artifactId>
<version>3.0-beta-3</version>
</dependency>
Note that all dependencies are unzipped and part of the final installer jar (target/product-installer.jar). The components.xml contains all available components.xml files (merged by plexus-component-metadata plugin).
how to build: mvn -X clean install > build.log
At runtime (java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address="8000" -jar target/wigeoweb-installer.jar) following code is executed:
MavenCli cli = new MavenCli();
int result = cli.doMain(new String[]
,
"C:/Develop/Experiments/webservercontext-maven-plugin", //Own plugin
System.out, System.out);
System.out.println("result: " + result);
It terminates with exception while initializing plexus container (there's the place where the debugger exits):
Exception:
Listening for transport dt_socket at address: 8000
[ERROR] Error executing Maven.
[ERROR] com.google.inject.internal.util.ComputationException: java.lang.NoClassDefFoundError: org/apache/maven/plugin/descriptor/MojoDescriptor
[ERROR] Caused by: java.lang.NoClassDefFoundError: org/apache/maven/plugin/descriptor/MojoDescriptor
[ERROR] Caused by: org/apache/maven/plugin/descriptor/MojoDescriptor
[ERROR] Caused by: org.apache.maven.plugin.descriptor.MojoDescriptor
Source Code:
private void container( CliRequest cliRequest )
throws Exception
{
if ( cliRequest.classWorld == null )
DefaultPlexusContainer container = this.container;
if ( container == null )
{
ContainerConfiguration cc = new DefaultContainerConfiguration()
.setClassWorld( cliRequest.classWorld )
.setName( "maven" );
container = new DefaultPlexusContainer( cc ); //<<<<<<<<<<<<<<<<<<<<<< EXCEPTION THROWN
container.setLoggerManager( new MavenLoggerManager( logger ) );
container.getLoggerManager().setThresholds( cliRequest.request.getLoggingLevel() );
customizeContainer( container );
if ( cliRequest.classWorld == classWorld )
{ this.container = container; }}
maven = container.lookup( Maven.class );
executionRequestPopulator = container.lookup( MavenExecutionRequestPopulator.class );
modelProcessor = createModelProcessor( container );
settingsBuilder = container.lookup( SettingsBuilder.class );
dispatcher = (DefaultSecDispatcher) container.lookup( SecDispatcher.class, "maven" );
}
thank you
K. Golbang
Activity
| Field | Original Value | New Value |
|---|---|---|
| Affects Version/s | 3.0.3 [ 17061 ] | |
| Affects Version/s | 2.2.1 [ 15328 ] |
| Status | Open [ 1 ] | Closed [ 6 ] |
| Resolution | Cannot Reproduce [ 5 ] |