Hi,
By using executionContext/executionRequest API, you perform a so-called
workspace build of the project, which m2e itself uses to execute various
mojos/phases.
In this mode some (interesting) mojo executions are either replaced by a
configurator - a special plugin that does its own stuff - or are run as-is
(very rarely though) and many others (unknown/uninteresting) are simply
ignored, which includes everything starting from package phase and beyond.
[1]

What you really want is to create a new 'private' m2e launch configuration
(private ones do no register themselves in launch config ui) and execute
it. This way maven embedder is launched in a basically vanilla environment.
I've been using a pretty crude version this approach for some time now: [2]

[1] https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html
[2] https://gist.github.com/atanasenko/ddcc08403488835fdcc7


2015-09-20 23:41 GMT+03:00 Marek Jagielski <[email protected]>:

> I use:
> eclipse mars where m2e has version 1.6.0
> Linux Mint 17 - however solution should be multiplatform
>
> 2015-09-20 22:17 GMT+02:00 Marek Jagielski <[email protected]>:
>
>> Hi,
>>
>> I am developing pde plugin where user projects are maven nature projects.
>> My plugin requires m2e to handle project configuration from user
>> perspective.
>>
>> In some occasion I needed to run "package" goal programmatically. I was
>> doing like this as below:
>>
>>         String path = project.getLocation().toOSString();
>>         MavenCli cli = new MavenCli();
>>         int result = cli.doMain(new String[] { "package", "-T 4C",
>> "-DskipTests" }, path, null, null);
>>         return result == 0 ? true : false;
>>
>> However, I was using separate bundle:
>>       <dependency>
>>          <groupId>org.apache.maven</groupId>
>>          <artifactId>maven-embedder</artifactId>
>>          <version>3.2.3</version>
>>       </dependency>
>> that was integrated using maven-bundle-plugin.
>>
>> Doing further development I started using m2e and reached compatibility
>> issues. I decided to use only m2e api.
>>
>> With the same code, but using m2e I got exception:
>>
>> -Dmaven.multiModuleProjectDirectory system propery is not set. Check
>> $M2_HOME environment variable and mvn script match
>>
>> So I started to look into m2e api. I tried code like this:
>>
>>         IMavenProjectRegistry projectManager =
>> MavenPlugin.getMavenProjectRegistry();
>>         IFile pomFile = project.getFile(new Path("pom.xml"));
>>         IMavenProjectFacade projectFacade =
>> projectManager.create(pomFile, true, new NullProgressMonitor());
>>         MavenProject mp = projectFacade.getMavenProject();
>>
>>         IMavenExecutionContext ec =
>> MavenPlugin.getMaven().createExecutionContext();
>>         ec.getExecutionRequest().getGoals().add("package");
>>         ec.getExecutionRequest().setBaseDirectory(mp.getBasedir());
>>         ec.getExecutionRequest().setPom(mp.getFile());
>>         ec.getExecutionRequest().setBuilderId("multithreaded");
>>         ec.getExecutionRequest().setDegreeOfConcurrency(4);
>>         ec.execute(projectFacade.getMavenProject(),new
>> ICallable<Boolean>() {
>>             @Override
>>             public Boolean call(IMavenExecutionContext mec,
>> IProgressMonitor pm) throws CoreException {
>>                 return true;
>>             }
>>         }, new NullProgressMonitor());
>>
>> without errors, however without expected results. In console I got:
>>
>> 21:40:43.440 [Worker-37] DEBUG o.e.m.c.i.builder.MavenBuilder - Building
>> project test1
>> 21:40:43.443 [Worker-37] DEBUG o.e.a.i.i.DefaultLocalRepositoryProvider -
>> Using manager EnhancedLocalRepositoryManager with priority 10.0 for
>> /home/marek/.m2/repository
>> 21:40:43.444 [Worker-37] DEBUG
>> o.e.m.c.p.c.AbstractCustomizableLifecycleMapping - Build participants for
>> MavenProject: org.examples:example:1.0.0-SNAPSHOT @
>> /home/marek/Projects/systemInCloudModeler/runtime-EclipseApplication/test1/pom.xml
>> 21:40:43.444 [Worker-37] DEBUG
>> o.e.m.c.p.c.AbstractCustomizableLifecycleMapping - Mojo execution key:
>> org.apache.maven.plugins:maven-resources-plugin:2.6:resources (execution:
>> default-resources, phase: process-resources)
>> 21:40:43.444 [Worker-37] DEBUG
>> o.e.m.c.p.c.AbstractCustomizableLifecycleMapping - Action: execute
>> 21:40:43.444 [Worker-37] DEBUG
>> o.e.m.c.p.c.AbstractCustomizableLifecycleMapping - Mojo execution key:
>> org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (execution:
>> default-compile, phase: compile)
>> 21:40:43.444 [Worker-37] DEBUG
>> o.e.m.c.p.c.AbstractCustomizableLifecycleMapping - Mojo execution key:
>> org.apache.maven.plugins:maven-resources-plugin:2.6:testResources
>> (execution: default-testResources, phase: process-test-resources)
>> 21:40:43.445 [Worker-37] DEBUG
>> o.e.m.c.p.c.AbstractCustomizableLifecycleMapping - Action: execute
>> 21:40:43.445 [Worker-37] DEBUG
>> o.e.m.c.p.c.AbstractCustomizableLifecycleMapping - Mojo execution key:
>> org.apache.maven.plugins:maven-compiler-plugin:2.3.2:testCompile
>> (execution: default-testCompile, phase: test-compile)
>> 21:40:43.445 [Worker-37] DEBUG
>> o.e.m.c.p.c.AbstractCustomizableLifecycleMapping - Mojo execution key:
>> org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (execution:
>> default-test, phase: test)
>> 21:40:43.445 [Worker-37] DEBUG
>> o.e.m.c.p.c.AbstractCustomizableLifecycleMapping - Mojo execution key:
>> org.apache.maven.plugins:maven-jar-plugin:2.4:jar (execution: default-jar,
>> phase: package)
>> 21:40:43.445 [Worker-37] DEBUG
>> o.e.m.c.p.c.AbstractCustomizableLifecycleMapping - Action: configurator
>> 21:40:43.445 [Worker-37] DEBUG
>> o.e.m.c.p.c.AbstractCustomizableLifecycleMapping - Project configurator
>> : id=org.sonatype.m2e.mavenarchiver.jararchiverconfigurator
>> class=org.sonatype.m2e.mavenarchiver.internal.JarArchiverConfigurator
>> 21:40:43.446 [Worker-37] DEBUG
>> o.e.m.c.p.c.AbstractCustomizableLifecycleMapping - Build participant:
>> org.sonatype.m2e.mavenarchiver.internal.AbstractMavenArchiverConfigurator$1
>> 21:40:43.446 [Worker-37] DEBUG
>> o.e.m.c.p.c.AbstractCustomizableLifecycleMapping - Mojo execution key:
>> org.apache.maven.plugins:maven-install-plugin:2.4:install (execution:
>> default-install, phase: install)
>> 21:40:43.446 [Worker-37] DEBUG
>> o.e.m.c.p.c.AbstractCustomizableLifecycleMapping - Mojo execution key:
>> org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (execution:
>> default-deploy, phase: deploy)
>> 21:40:43.446 [Worker-37] DEBUG o.e.m.c.i.builder.MavenBuilderImpl -
>> Executing build participant
>> org.eclipse.m2e.core.project.configurator.MojoExecutionBuildParticipant for
>> plugin execution
>> org.apache.maven.plugins:maven-resources-plugin:2.6:resources (execution:
>> default-resources, phase: process-resources)
>> 21:40:43.451 [Worker-37] INFO  o.e.m.c.i.embedder.EclipseLogger - Using
>> 'UTF-8' encoding to copy filtered resources.
>> 21:40:43.452 [Worker-37] INFO  o.e.m.c.i.embedder.EclipseLogger - Copying
>> 0 resource
>> 21:40:43.453 [Worker-37] DEBUG o.e.m.c.i.builder.MavenBuilderImpl -
>> Finished executing build participant
>> org.eclipse.m2e.core.project.configurator.MojoExecutionBuildParticipant for
>> plugin execution
>> org.apache.maven.plugins:maven-resources-plugin:2.6:resources (execution:
>> default-resources, phase: process-resources) in 7 ms
>> 21:40:43.453 [Worker-37] DEBUG o.e.m.c.i.builder.MavenBuilderImpl -
>> Executing build participant
>> org.eclipse.m2e.core.project.configurator.MojoExecutionBuildParticipant for
>> plugin execution
>> org.apache.maven.plugins:maven-resources-plugin:2.6:testResources
>> (execution: default-testResources, phase: process-test-resources)
>> 21:40:43.456 [Worker-37] INFO  o.e.m.c.i.embedder.EclipseLogger - Using
>> 'UTF-8' encoding to copy filtered resources.
>> 21:40:43.457 [Worker-37] INFO  o.e.m.c.i.embedder.EclipseLogger - Copying
>> 0 resource
>> 21:40:43.457 [Worker-37] DEBUG o.e.m.c.i.builder.MavenBuilderImpl -
>> Finished executing build participant
>> org.eclipse.m2e.core.project.configurator.MojoExecutionBuildParticipant for
>> plugin execution
>> org.apache.maven.plugins:maven-resources-plugin:2.6:testResources
>> (execution: default-testResources, phase: process-test-resources) in 4 ms
>> 21:40:43.457 [Worker-37] DEBUG o.e.m.c.i.builder.MavenBuilderImpl -
>> Executing build participant
>> org.sonatype.m2e.mavenarchiver.internal.AbstractMavenArchiverConfigurator$1
>> for plugin execution org.apache.maven.plugins:maven-jar-plugin:2.4:jar
>> (execution: default-jar, phase: package)
>> 21:40:43.457 [Worker-37] DEBUG o.e.m.c.i.builder.MavenBuilderImpl -
>> Finished executing build participant
>> org.sonatype.m2e.mavenarchiver.internal.AbstractMavenArchiverConfigurator$1
>> for plugin execution org.apache.maven.plugins:maven-jar-plugin:2.4:jar
>> (execution: default-jar, phase: package) in 0 ms
>> 21:40:43.458 [Worker-37] DEBUG o.e.m.c.i.builder.MavenBuilder - Built
>> project test1 in 18 ms
>>
>>
>> I would be appreciated for any help with explaining how to use m2e api.
>> Thanks in advance,
>>
>> Marek
>>
>> --
>> Marek Jagielski
>> +48 513 402 596
>>
>
>
>
> --
> Marek Jagielski
> +48 513 402 596
>
> _______________________________________________
> m2e-users mailing list
> [email protected]
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/m2e-users
>



-- 
Regards,
Anton.
_______________________________________________
m2e-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/m2e-users

Reply via email to