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