One can package, install and deploy such a war, no warning related to this issue will get printed.
Regards, Stevo. On Sun, May 10, 2009 at 8:57 PM, Stephen Connolly < stephen.alan.conno...@gmail.com> wrote: > IIRC maven warns you that you have changed a dependency from compile scope > to test scope. > > you may have a valid reason for so doing, but maven is no medium and cannot > ask a higher plain what you wanted to do. if a warning is not good enough, > tough > > Sent from my [rhymes with myPod] ;-) > > On 10 May 2009, at 18:01, Stevo Slavić <ssla...@gmail.com> wrote: > > "Just because that's the way things are doesn't mean that's how they >> should >> be.", said a character in the movie "Australia". >> >> In this particular scenario, local test scoped dependency vs compile scope >> transitive dependency, it's my opinion that current strategy is wrong. >> Local >> test scoped dependencies shouldn't by default override compile scoped >> transitive dependencies. If one wanted to exclude transitive compile >> scoped >> dependency and have it available only in test scope, it would be more >> natural (for me at least) to require user to specify appropriate excludes >> section on a dependency that brought transitive dependency with it. Again, >> just in this particular case, requiring user to explicitly specify >> excludes >> section would more clearly state/document the intention, while currently >> build tool silently makes a wrong decision (maybe there are times this >> decision is correct, but IMO it correct in far less cases than it is >> wrong). >> >> Regards, >> Stevo. >> >> 2009/5/10 Brian Fox <bri...@infinity.nu> >> >> By local I mean the pom currently being built. Stuff defined here always >>> overrides dependencies and transitive dependencies. >>> >>> On Sun, May 10, 2009 at 5:34 AM, Stevo Slavić <ssla...@gmail.com> wrote: >>> >>> Is there any reason why would local win in this particular case? >>>> >>>> Regards, >>>> Stevo. >>>> >>>> On Sun, May 10, 2009 at 5:26 AM, Brian Fox <bri...@infinity.nu> wrote: >>>> >>>> On Fri, May 8, 2009 at 11:17 AM, Todd Thiessen <thies...@nortel.com> >>>>> wrote: >>>>> >>>>> Override the dependency defined in the POM, as Steve outline in his >>>>>> earlier response. Let me quote his explanation for ease of reference: >>>>>> >>>>>> "E.g. if project P has test scoped dependency to a LIB1, and compile >>>>>> scoped dependency to LIB2, while LIB2 has compile scope dependency to >>>>>> LIB1, currently project P's war will wrongly end up without LIB1 >>>>>> included. In P one expects LIB1 to be available for testing, but that >>>>>> shouldn't affect availability of LIB1 as compile scoped transitive >>>>>> dependency, it should be the other way round, in this case scope of >>>>>> declared test scoped dependency should be broadened." >>>>>> >>>>>> I used the term "override" to descibe the situation when project P >>>>>> should have LIB1 defined as a compile dependency, when the POM >>>>>> >>>>> actually >>> >>>> defines it as test. But it should should only override for test >>>>>> dependencies, not for provided or runtime. >>>>>> >>>>>> >>>>> The local pom always wins. Placing additional semantics on how things >>>>> >>>> merge >>>> >>>>> is troublesome. I'm sure we can think of scenarios where widening is >>>>> >>>> not >>> >>>> the >>>>> right thing to do. In either case you must have the ability to resolve >>>>> >>>> this >>>> >>>>> yourself if it doesn't do the right thing...and the way to do that is >>>>> >>>> to >>> >>>> put >>>>> what you want in the local pom. >>>>> >>>>> >>>>> >>>>>> As for your "lost me" comment I am not sure what you would like >>>>>> explained. Scope basically has multiple meanings. Compile/test are >>>>>> >>>>> both >>>> >>>>> related to requiring a dependency for compilation; runtime/provided >>>>>> >>>>> are >>> >>>> both related to requiring a dependency only at runtime. These >>>>>> >>>>> multiple >>> >>>> meanings are not suited to a single variable. >>>>>> >>>>>> >>>>> Are there many cases where you want something for compilation that >>>>> >>>> isn't >>> >>>> needed at runtime? I don't see them as being separate. >>>>> >>>>> >>>>> >>>>>> --- >>>>>> Todd Thiessen >>>>>> >>>>>> >>>>>> >>>>> >>>> >>> > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org > For additional commands, e-mail: users-h...@maven.apache.org > >