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]

Reply via email to