Hello,
You must probably use:
/**
* @component
*/
private ProjectBuilder projectBuilder;
2012/2/10 Max Spring <[email protected]>:
> I'm running into the same "mavenTools: null" problem, but my code sits in a
> Maven 3.0.3 mojo:
>
> public class MyMojo extends AbstractMojo{
>
> /** @parameter default-value="${repositorySystemSession}" */
> private RepositorySystemSession repoSession;
>
> public void execute() throws MojoExecutionException{
> DefaultProjectBuilder builder = new DefaultProjectBuilder();
> DefaultProjectBuildingRequest req = new
> DefaultProjectBuildingRequest();
> req.setRepositorySession(repoSession);
> builder.build(new File("my-pom.xml"),req);
>
> MavenProject prj = req.getProject();
> Model model = prj.getModel();
> }
> }
>
> It barfs with
>
> Caused by: java.lang.IllegalArgumentException: mavenTools: null
> at org.apache.maven.project.MavenProject.<init>(MavenProject.java:249)
> at
> org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:128)
> at
> org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:102)
> at MyMojo.execute(MyMojo.java:59)
>
> This is because repositorySystem in DefaultProjectBuilder is null, i.e.
> hasn't been injected:
>
> @Requirement
> private RepositorySystem repositorySystem;
>
> How can I get the right repositorySystem injected?
>
> Context:
> I'm essentially trying to do the M2E "Import Project" use case, but
> completely outside of Eclipse.
> I want to populate a workspace using the SCM pointer given by a POM fetched
> from the group repository.
>
> Thanks!
> -Max
>
>
> On 10/18/2011 04:59 AM, Barrie Treloar wrote:
>>
>> On Tue, Oct 18, 2011 at 10:02 PM, deusaquilus<[email protected]>
>> wrote:
>>>
>>> Here's what I'm doing:
>>>
>>> File pom = new File("pom.xml");
>>> DefaultProjectBuildingRequest request = new
>>> DefaultProjectBuildingRequest();
>>> DefaultProjectBuilder builder = new DefaultProjectBuilder();
>>>
>>> String mavenHome = System.getenv("M2_HOME");
>>> ArtifactRepository localRepository = new MavenArtifactRepository(
>>> "local",
>>> new File(mavenHome + "/repository").toURI().toURL().toString(),
>>> new DefaultRepositoryLayout(),
>>> new ArtifactRepositoryPolicy(),
>>> new ArtifactRepositoryPolicy());
>>> request.setLocalRepository(localRepository);
>>> MavenProject project = builder.build(pom, request).getProject();
>>> Properties properties = project.getProperties();
>>>
>>> Trouble is it's giving me errors with "mavenTools: null"
>>
>>
>> I'd be surprised if that worked.
>>
>> Maven makes heavy use of dependency injection via Plexus and chances
>> are you haven't set up some component that is being used.
>>
>> What is your actual use case. I dont see why you would want to expose
>> Maven properties as a Java properties object...
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
--
Olivier Lamy
Talend: http://coders.talend.com
http://twitter.com/olamy | http://linkedin.com/in/olamy
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]