I personally don't really like defining compile/runtime dependencies
in parent poms (I'm ok with testing dependencies).

On Tue, Feb 11, 2014 at 12:43 PM, Daniel Kulp <[email protected]> wrote:
>
> While working with Art to figure out why his web console war was 
> significantly smaller than mine, we determined that it comes down to what 
> version of Maven you use to build.  3.0.5 includes more jars than 3.1.1.  
> Looking into it, it looks like 3.1.1 is using the parent poms "optional=true" 
> flags for the transitive dependencies whereas 3.0.5 is not.
>
> For example, in the parent pom, we have all the spring stuff (spring-core, 
> spring-context, spring-beans, spring-aop) as "optional=true".      However, 
> in activemq-web, we set spring-web and spring-webmvc to optional=false.   
> With 3.0.5, the transitive dependencies of spring-webmvc/spring-web then also 
> get changed to optional=false.  However, with 3.1.1, they don't.  They remain 
> optional=true and thus don't get packaged into the war.
>
> For consistency sake, I'd like to get this fixed.   Two options:
>
> 1) For all the transitive deps pulled in for activemq-web, 
> acttivemq-web-console, etc... add them directly to the deps in those poms 
> with a optional=false flag.
>
> 2) Remove the optional=true flag from the parent pom and add it into the 
> other poms where they truly are optional.    Avoid the option=false construct.
>
>
> Thoughts?    I believe #2 would be more "maven standard".
>
> --
> Daniel Kulp
> [email protected] - http://dankulp.com/blog
> Talend Community Coder - http://coders.talend.com
>



-- 
Hiram Chirino
Engineering | Red Hat, Inc.
[email protected] | fusesource.com | redhat.com
skype: hiramchirino | twitter: @hiramchirino

Reply via email to