Igor,

I've worked out how to modify the project classpath (pretty trivial). But
I'm struggling to get the project dependencies resolved during
LifeCycleParticipant#afterProjectsRead.

I tried using the TychoDependencyResolver to #setupProject and
#resolveProject but that isn't causing the projects dependencies to get
resolved. I'm not sure what I'm missing.

I've created a cut down project dep-resolution-plugin at
https://github.com/william-ferguson-au/dep-resolution-plugin.git
And a project that tests that plugin at
https://github.com/william-ferguson-au/dep-resolution-plugin-test.git
If you could have a look and point out what it is I'm missing I'd be most
grateful.

William



On Sat, Jan 25, 2014 at 6:57 AM, William Ferguson <
william.fergu...@xandar.com.au> wrote:

> Maven 3.1.1 official, and all the plugin dependencies are 3.,1.1 too.
>
> I'll trying switching to the annotations. Javadoc annotations were just
> for conformity with the rest of the project.
>
> If that doesn't work, I'll put together a cut down example.
>
> Thanks.
>
> William
>
>
> On Thu, Jan 23, 2014 at 9:43 PM, Igor Fedorenko <i...@ifedorenko.com>wrote:
>
>> No, no tricks, as far as I know Plexus (and now Sisu/Guice) only inject
>> fully configured components. so the behaviour you describe is rather odd.
>>
>> What version of Maven do you use? Is it official distribution from
>> Apache or something you built locally?
>>
>> Not likely related, but I haven't used javadoc plexus annotations in
>> ages. Any particular reason you don't want to use java 5 @Component?
>>
>> In any case, if you can provide small standalone example that shows the
>> problem, I can try to see what's going on there.
>>
>> --
>> Regards,
>> Igor
>>
>>
>> On 1/23/2014, 0:54, William Ferguson wrote:
>>
>>> Igor,
>>>
>>> I'm having some difficulty getting the LifecycleParticipant to resolve
>>> Maven components.
>>>
>>> In particular, the org.apache.maven.project.ProjectDependenciesResolver.
>>> While it gets resolved, none of it's internal attributes get resolved. So
>>> calls to projectDependenciesResolver.resolve crash with NPEs because
>>> DefaultProjectDependenciesResolver#logger or #repoSystem is not
>>> initialised.
>>>
>>>      /**
>>>       * @component
>>>       * @readonly
>>>       * @required
>>>       */
>>>      protected ProjectDependenciesResolver projectDependenciesResolver;
>>>
>>> Is there some special trick to getting components fully initialised in a
>>> LifecycleParticipant?
>>>
>>> William
>>>
>>>
>>> On Tue, Jan 21, 2014 at 12:21 AM, Igor Fedorenko <i...@ifedorenko.com
>>> >wrote:
>>>
>>>  Here is Tycho lifecycle participant [1] and here is the code that
>>>> injects new dependencies in MavenProject instances [2].
>>>>
>>>>
>>>> [1] http://git.eclipse.org/c/tycho/org.eclipse.tycho.git/
>>>> tree/tycho-core/src/main/java/org/eclipse/tycho/core/maven/
>>>> TychoMavenLifecycleParticipant.java?h=tycho-0.19.x
>>>> [2] http://git.eclipse.org/c/tycho/org.eclipse.tycho.git/
>>>> tree/tycho-core/src/main/java/org/eclipse/tycho/core/maven/
>>>> MavenDependencyInjector.java?h=tycho-0.19.x
>>>>
>>>> --
>>>> Regards,
>>>> Igor
>>>>
>>>>
>>>> On 1/20/2014, 8:21, William Ferguson wrote:
>>>>
>>>>  Thanks Igor,
>>>>>
>>>>> could you give me a link to an example or some code that
>>>>>
>>>>>      - Utilises AbstractMavenLifecycleParticipant#afterProjectsRead
>>>>>      - How to manipulate the project <dependencies> from there.
>>>>>
>>>>>
>>>>> I found an example example by Brett Porter, but the doco is pretty thin
>>>>> and
>>>>> I can't see how I would go about inject extra elements into the
>>>>> classpath
>>>>> from there.
>>>>>
>>>>> William
>>>>>
>>>>>
>>>>> On Mon, Jan 20, 2014 at 10:47 PM, Igor Fedorenko <i...@ifedorenko.com
>>>>>
>>>>>> wrote:
>>>>>>
>>>>>
>>>>>   There is probably more ways to do this, but you can implement
>>>>>
>>>>>> AbstractMavenLifecycleParticipant#afterProjectsRead to manipulate
>>>>>> project <dependencies>. This is what we do in Tycho, where we resolve
>>>>>> project OSGi dependencies in AbstractMavenLifecycleParticipant and
>>>>>> then
>>>>>> inject that into Maven project model as system scoped maven
>>>>>> dependencies.
>>>>>>
>>>>>> I also think your usecase highlights general deficiency with current
>>>>>> dependency model. Since you have to add classpath elements
>>>>>> dynamically,
>>>>>> these elements are not visible to maven-based tools like m2e without
>>>>>> additional effort on the tools part. I think it will be useful to
>>>>>> extend
>>>>>> <dependency> element syntax to allow references for nested
>>>>>> archive entries, i.e. "dependency on classes jar nested within this
>>>>>> AAR
>>>>>> archive".
>>>>>>
>>>>>> --
>>>>>> Regards,
>>>>>> Igor
>>>>>>
>>>>>>
>>>>>> On 1/20/2014, 7:00, William Ferguson wrote:
>>>>>>
>>>>>>   Hi,
>>>>>>
>>>>>>>
>>>>>>> I realise this question isn't exactly related to dev within the Maven
>>>>>>> components, but it is about developing a Mojo using components that
>>>>>>> have
>>>>>>> to
>>>>>>> be pretty central and don't appear to be obviously documented
>>>>>>> anywhere.
>>>>>>> And
>>>>>>> I ahve asked on maven-users without much luck.
>>>>>>>
>>>>>>> As part of the android-maven-plugin we have a Mojo which needs to
>>>>>>> add an
>>>>>>> element to the compile time classpath for future Mojos (specifically
>>>>>>> the
>>>>>>> maven-compiler-plugin).
>>>>>>>
>>>>>>> Project has dependencies on artifacts of type AAR (Android archive -
>>>>>>> an
>>>>>>> archive that contains several sub-artifacts including a classes jar).
>>>>>>>
>>>>>>> Our Mojo unpacks the AAR artifacts and makes the sub-artifacts
>>>>>>> available
>>>>>>> to
>>>>>>> other build components.
>>>>>>>
>>>>>>> One of those build components is the maven-compiler-plugin. We want
>>>>>>> to
>>>>>>> add
>>>>>>> the classes contained in the AAR dependencies to the compile
>>>>>>> classpath
>>>>>>> so
>>>>>>> that the maven-compiler-plugin can compile our classes against the
>>>>>>> classes
>>>>>>> from the AARs.
>>>>>>>
>>>>>>> How do we do that?
>>>>>>>
>>>>>>>
>>>>>>> William
>>>>>>>
>>>>>>>
>>>>>>>   ------------------------------------------------------------
>>>>>>> ---------
>>>>>>>
>>>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>>>>>> For additional commands, e-mail: dev-h...@maven.apache.org
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>  ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>>>> For additional commands, e-mail: dev-h...@maven.apache.org
>>>>
>>>>
>>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>> For additional commands, e-mail: dev-h...@maven.apache.org
>>
>>
>

Reply via email to