Well just to give you a data point. I am a firm believer in never running
`install` unless I have to. I also use the shade plugin a lot and I have
never had the issue you describe. IOW it works for me from a clean local
repo with just `mvn package`... I suspect you are doing something silly.

Also what version of Maven are you using, IIRC some versions of Maven 3.0
(I think 3.0-3.0.3) had a bug with reactor resolution

On 8 April 2015 at 20:55, Eric Kolotyluk <eric.koloty...@gmail.com> wrote:

> OK, I will have to test this further, as that has not been my experience
> over the years.
>
> Basically my module pom looks like
>
>         <parent>
>             <groupId>com.3tierlogic</groupId>
>             <artifactId>platform3</artifactId>
>             <version>1.0.0-SNAPSHOT</version>
>             <relativePath>../pom.xml</relativePath>
>         </parent>
>
>         <groupId>com.3tierlogic.platform3</groupId>
>         <artifactId>p3-s-behaviors</artifactId>
>         <packaging>jar</packaging>
>
>         <dependencies>
>             <dependency>
>    <groupId>com.3tierlogic.platform3</groupId>
>                 <artifactId>p3-util</artifactId>
>             </dependency>
>             <dependency>
>    <groupId>com.3tierlogic.platform3</groupId>
>                 <artifactId>p3-core</artifactId>
>             </dependency>
>         </dependencies>
>
> And my parent pom looks like
>
>       <groupId>com.3tierlogic</groupId>
>       <artifactId>platform3</artifactId>
>       <packaging>pom</packaging>
>       <version>1.0.0-SNAPSHOT</version>
>
>       <modules>
>         <module>p3-core</module>
>         <module>p3-s-accounts</module>
>         <module>p3-s-behaviors</module>
>         <module>p3-s-harmonizer</module>
>         <module>p3-s-ingestor</module>
>         <module>p3-s-messaging</module>
>         <module>p3-s-rewards</module>
>         <module>p3-s-scraper</module>
>         <module>p3-util</module>
>       </modules>
>
> Does this look OK, or am I doing something wrong?
>
> Cheers, Eric
>
>
>
> On 2015-04-08 12:18 PM, Anton Tanasenko wrote:
>
>> I meant "(containing other modules)" of course.
>>
>> 2015-04-08 22:17 GMT+03:00 Anton Tanasenko <atg.sleepl...@gmail.com>:
>>
>>  Shade plugin should pick up reactor dependencies just fine, as long as
>>> the
>>> shading module (3 in your case) references the root project (containing
>>> other dependencies) correctly in the parent section.
>>>
>>>
>>> 2015-04-08 21:14 GMT+03:00 Eric Kolotyluk <eric.koloty...@gmail.com>:
>>>
>>>  Adrien, while this would be what we might expect, it fails because the
>>>> maven-shade-plugin pulls included artifacts from the local repo.
>>>> Consequently, during the package phase, while packages have been built
>>>> for
>>>> all the modules in the right order, they have not been deposited in the
>>>> local repo because the install phase comes after the the package phase.
>>>> If
>>>> the shade plugin were to take the artifacts from the target directories
>>>> in
>>>> modules 1 & 2, then all would be fine, but that is not what shade does.
>>>>
>>>> Cheers, Eric
>>>>
>>>>
>>>> On 2015-04-08 10:50 AM, Adrien Rivard wrote:
>>>>
>>>>  Hi,
>>>>>
>>>>> Running package in project A should run package in module1, then
>>>>> package
>>>>> in
>>>>> module 2, then package in module 3 (which will be build with freshly
>>>>> build
>>>>> module 1 and 2).
>>>>> If this is not working then something is wrong within your build
>>>>> (either
>>>>> dependencies, or modules declaration?).
>>>>>
>>>>> There is generaly no need to  run install in a correct maven build.
>>>>>
>>>>> I am not sure if this is the case, but if you declared the shaded part
>>>>> in
>>>>> the project A pom, this is the wrong place, it should be either in
>>>>> module 3
>>>>> or module 4.
>>>>>
>>>>>
>>>>> On Wed, Apr 8, 2015 at 7:36 PM, Eric Kolotyluk <
>>>>> eric.koloty...@gmail.com
>>>>> wrote:
>>>>>
>>>>>   The problem I have now is that I have to manually do the following:
>>>>>
>>>>>> project A/module 1> mvn install
>>>>>> project A/module 2> mvn install
>>>>>> project A> mvn package
>>>>>>
>>>>>> Because the maven-shade-plugin for module 3 needs the artifacts for
>>>>>> modules 1 & 2 to be installed in the local repo first. This totally
>>>>>> sucks
>>>>>> because it is error prone, and Maven is supposed to be about
>>>>>> automation.
>>>>>> Similarly, if I do something like
>>>>>>
>>>>>> project A/module 3> mvn package
>>>>>>
>>>>>> I want modules 2 & 3 to be installed first, if necessary, so that the
>>>>>> shade plugin will pick up the latest versions of these artifacts.
>>>>>>
>>>>>> The other approach I am considering is to run the maven-shade-plugin
>>>>>> in
>>>>>> the deploy phase, to ensure that all dependencies have been installed
>>>>>> first, but I really don't want to have to do a deploy this often,
>>>>>> especially when I am testing. I wish there were a phase between
>>>>>> install
>>>>>> and
>>>>>> deploy that I could used to create my shaded assemblies. Is there some
>>>>>> way
>>>>>> to ensure the shade plugin runs last in the install phase, after
>>>>>> everything
>>>>>> else has been installed?
>>>>>>
>>>>>> Cheers, Eric
>>>>>>
>>>>>>
>>>>>> On 2015-04-08 9:47 AM, Curtis Rueden wrote:
>>>>>>
>>>>>>   Hi Eric,
>>>>>>
>>>>>>>    project A> mvn package
>>>>>>>
>>>>>>>  such that modules 1 & 2 will automatically be installed before the
>>>>>>>> shade plugin runs for module 3?
>>>>>>>>
>>>>>>>>   My understanding is that you would need to run "mvn install" (not
>>>>>>>>
>>>>>>> "mvn
>>>>>>> package") from the project A base directory, if you want 1 and 2 to
>>>>>>> be
>>>>>>> installed. But it should happen in the order you desire, no?
>>>>>>>
>>>>>>> -Curtis
>>>>>>>
>>>>>>> On Wed, Apr 8, 2015 at 11:23 AM, Anders Hammar <and...@hammar.net>
>>>>>>> wrote:
>>>>>>>
>>>>>>>    Not sure I follow. Isn't Project A a multi-module project? Then if
>>>>>>> you do
>>>>>>>
>>>>>>>  "mvn package", module 1 and 2 should build before 3 if you have
>>>>>>>> declared
>>>>>>>> the dependencies correctly.
>>>>>>>>
>>>>>>>> /Anders
>>>>>>>>
>>>>>>>> On Wed, Apr 8, 2015 at 6:17 PM, Eric Kolotyluk <
>>>>>>>> eric.koloty...@gmail.com
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>    I have
>>>>>>>>
>>>>>>>>  Project A
>>>>>>>>> - module 1
>>>>>>>>> - module 2
>>>>>>>>> - module 3 (depends on 1 & 1)
>>>>>>>>> -- creates shaded artifact
>>>>>>>>>
>>>>>>>>> Is there a way that I can configure my poms to do
>>>>>>>>>
>>>>>>>>> project A> mvn package
>>>>>>>>>
>>>>>>>>> such that modules 1 & 2 will automatically be installed before the
>>>>>>>>> shade
>>>>>>>>> plugin runs for module 3?
>>>>>>>>>
>>>>>>>>> Cheers, Eric
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ------------------------------------------------------------
>>>>>>>>> ---------
>>>>>>>>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>>>>>>>>> For additional commands, e-mail: users-h...@maven.apache.org
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>   ------------------------------------------------------------
>>>>>>>>>
>>>>>>>> ---------
>>>>>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>>>>>> For additional commands, e-mail: users-h...@maven.apache.org
>>>>>>
>>>>>>
>>>>>>
>>>>>>  ------------------------------------------------------------
>>>> ---------
>>>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>>>> For additional commands, e-mail: users-h...@maven.apache.org
>>>>
>>>>
>>>>
>>> --
>>> Regards,
>>> Anton.
>>>
>>>
>>
>>
>

Reply via email to