Hello all,

I want to compile a Maven project from Java code. Thus, I am using the 
MavenEmbedder (http://maven.apache.org/guides/mini/guide-embedding-m2.html). 
Here is my code:

    Configuration config = new DefaultConfiguration();
    config.setUserSettingsFile(new File("..."));
    config.setClassLoader(Thread.currentThread().getContextClassLoader());
    ConfigurationValidationResult validationResult = 
MavenEmbedder.validateConfiguration(config);
    if (validationResult.isValid()) {
        try {
            MavenEmbedder embedder = new MavenEmbedder(config);
            MavenExecutionRequest request = new DefaultMavenExecutionRequest();
            request.setBaseDirectory("...");
            request.setGoals(Arrays.asList(new String[] { "clean", "install" 
}));
            MavenExecutionResult result = embedder.execute(request);
            if (result.hasExceptions()) {
                List<Exception> exceptions = result.getExceptions();
                for (Exception e : exceptions) {
                    e.printStackTrace();
                }
            }
        } catch (MavenEmbedderException e) {
            e.printStackTrace();
        }
    }

When I run this code, I get this log, which show me an error:

[INFO] Scanning for projects...
[INFO] Reactor build order: 
[INFO]   MyApp
[INFO]   MyApp Commons
[INFO]   MyApp Client
[INFO]   MyApp Server
[INFO] ------------------------------------------------------------------------
[INFO] Building MyApp
[INFO] 
[INFO] Id: myapp:MyApp:pom:1.0
[INFO] task-segment: [clean, install]
[INFO] ------------------------------------------------------------------------
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to construct 
build plan for: MyApp
Id: myApp:MyApp:pom:1.0
task-segment: [clean, install]. Reason: Failed to resolve plugin for mojo 
binding: org.apache.maven.plugins:maven-install-plugin:2.2:install
    at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.getLifecycleBindings(DefaultLifecycleExecutor.java:408)
    at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmentForProject(DefaultLifecycleExecutor.java:233)
    at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:201)
    at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:164)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:207)
    at org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:846)
    at myapp.build.MavenBuilder.runMvnCommand(MavenBuilder.java:60)
    at myapp.build.ProjectBuilder.go(ProjectBuilder.java:62)
    at myapp.build.ProjectBuilder.doInBackground(ProjectBuilder.java:77)
    at myapp.build.ProjectBuilder.doInBackground(ProjectBuilder.java:1)
    at javax.swing.SwingWorker$1.call(SwingWorker.java:278)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at javax.swing.SwingWorker.run(SwingWorker.java:317)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.maven.lifecycle.plan.LifecyclePlannerException: Failed to 
resolve plugin for mojo binding: 
org.apache.maven.plugins:maven-install-plugin:2.2:install
    at 
org.apache.maven.lifecycle.plan.DefaultBuildPlanner.loadPluginDescriptor(DefaultBuildPlanner.java:350)
    at 
org.apache.maven.lifecycle.plan.DefaultBuildPlanner.findForkModifiers(DefaultBuildPlanner.java:197)
    at 
org.apache.maven.lifecycle.plan.DefaultBuildPlanner.addForkedLifecycleModifiers(DefaultBuildPlanner.java:184)
    at 
org.apache.maven.lifecycle.plan.DefaultBuildPlanner.constructBuildPlan(DefaultBuildPlanner.java:122)
    at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.getLifecycleBindings(DefaultLifecycleExecutor.java:394)
    ... 16 more
Caused by: org.apache.maven.plugin.loader.PluginLoaderException: Failed to load 
plugin. Reason: The PluginDescriptor for the plugin 
org.apache.maven.plugins:maven-install-plugin was not found. Should have been 
in realm: 
ClassRealm[/plugins/org.apache.maven.plugins:maven-install-plugin:2...@48/thread:33,
 parent: null]
    at 
org.apache.maven.plugin.loader.DefaultPluginLoader.loadPlugin(DefaultPluginLoader.java:111)
    at 
org.apache.maven.plugin.loader.DefaultPluginLoader.loadPlugin(DefaultPluginLoader.java:54)
    at 
org.apache.maven.lifecycle.plan.DefaultBuildPlanner.loadPluginDescriptor(DefaultBuildPlanner.java:327)
    ... 20 more
Caused by: org.apache.maven.plugin.PluginManagerException: The PluginDescriptor 
for the plugin org.apache.maven.plugins:maven-install-plugin was not found. 
Should have been in realm: 
ClassRealm[/plugins/org.apache.maven.plugins:maven-install-plugin:2...@48/thread:33,
 parent: null]
    at 
org.apache.maven.plugin.DefaultPluginManager.addPlugin(DefaultPluginManager.java:355)
    at 
org.apache.maven.plugin.DefaultPluginManager.verifyVersionedPlugin(DefaultPluginManager.java:224)
    at 
org.apache.maven.plugin.DefaultPluginManager.verifyPlugin(DefaultPluginManager.java:199)
    at 
org.apache.maven.plugin.loader.DefaultPluginLoader.loadPlugin(DefaultPluginLoader.java:81)
    ... 22 more

Some information:
- I've looked to my local repository, and the plugin 
org.apache.maven.plugins:maven-install-plugin:2.2 is present.
- When I execute manually the command "mvn clean install", the project compiles 
correctly.
- If I only ask in my code to do the "clean" goal (i.e. 
request.setGoals(Arrays.asList(new String[] { "clean" }));), then no error 
occurs and the cleaning is done correctly.

What is the problem with my code? How to solve it?

Thanks in advance.

Regards.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to