You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by "Tandon, Pankaj" <Pa...@crowncastle.com> on 2007/02/06 19:51:06 UTC

dependencies are bloated in M2

Hi all,
We've been using Maven 1.1 for more that a year now and are looking to
move to M2. 
With M1 our project.xml file had dependencies specified explicitly
because there was no support for transitive dependencies. As a result,
the jar files we downloaded for our webapp weighed in at about 11Meg.
While building our M2 pom.xml file(s), we kept adding dependencies (in
the pom.xml) till we got a clean compile. However now the size of the
dependent artifacts has doubled to a whopping 23Meg! And they make it to
the WEB-INF/lib increasing the size of our final artifact.
 
So the questions are:
1. How can we control what get's into WEB-INF/lib. We tried all the
scopes mentioned, but that did not help. There used to be a
<properties><war.bundle>true</war.bundle></properties> in the dependency
node in M1, but that is no longer available in M2. So even if I have
more depoendencies at compile time, how can I prevent my war artifact
from getting bloated?
 
2. How can we exclude second and third level dependencies. And IF we can
do so, how do I know what the dependency graph is for some of the
downloaded jars. 
For instance, there is a jar file (that is about 3Meg in size) called
apacheds-core-0.9.jar. We know our app does not need this becuase if we
delete this file, the app works just fine.
 
2a. How do I find out what top level dependecny that is specified in the
pom caused a certain file to be downloaded? If we figure that out maybe
we can use the exclude element in each dependency to NOT load this
dependency.
For instance, how do I find out what top level dependency in my pom
caused this apacheds-core-0.9.jar to land up in my local repository.
Infact, this jar does not even exist on http://repo1.maven.org/maven2/
unless I google it out and find it is tucked away here
http://repo1.maven.org/maven2/directory/. 
 
3. Is there a way to go back to explicit dependencies (non-transitive)
in the pom.xml?
 
 
Thanks in advance,
Pankaj

Re: dependencies are bloated in M2

Posted by PankajTandon <Pa...@crowncastle.com>.
OK.. I just got the answer to my question 2a on this thread... (The rest are
still unanswered).

mvn package -X is the most useful command I found to get at the depenceny
tree. From there.. it was just a matter of excluding the extra jars. 
I wish there was a top level exclusion (maybe in the <dependencyManagement>
node where global exclusions could be specified.


Thanks

Pankaj


Christian Goetze-3 wrote:
> 
> Tandon, Pankaj wrote:
> 
>> 
>> 
>>So the questions are:
>>1. How can we control what get's into WEB-INF/lib. We tried all the
>>scopes mentioned, but that did not help.
>>
> I believe that the scope that should work is "provided". The problem is 
> that I don't know if maven is smart enough to remove a provided 
> dependency from the transitive closure. I would call that a bug if it 
> didn't.
> 
> --
> cg
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/dependencies-are-bloated-in-M2-tf3182336s177.html#a8836160
Sent from the Maven - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: dependencies are bloated in M2

Posted by Wayne Fay <wa...@gmail.com>.
As Pankaj originally stated:
For instance, there is a jar file (that is about 3Meg in size) called
apacheds-core-0.9.jar. We know our app does not need this becuase if we
delete this file, the app works just fine.

He needs to use <exclusions> for this as he does not need this
dependency for anything, in any scope, at any time.

Wayne

On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> It is the right solution. Using exclusions will exclude a dependency from
> being downloaded at all, which means it won't be available at any path.
> Using provided will still make the dependency available for compile time,
> but not in runtime, and will not bundle it in the package.
>
> Read maven FAQ:
>
> http://maven.apache.org/general.html#scope-provided
>
>
>
> -----Original Message-----
> From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
> Sanchez
> Sent: Tuesday, February 06, 2007 4:29 PM
> To: Maven Users List
> Subject: Re: dependencies are bloated in M2
>
> that's not the right solution, you have to use exclusions
>
> On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> > It will. If you don't want to include a particular dependency in your
> > generated package just give it the provided scope, it will be excluded
> even
> > if it was a transitive dependency of something else.
> >
> > Bashar
> >
> > -----Original Message-----
> > From: Christian Goetze [mailto:cg@miaow.com]
> > Sent: Tuesday, February 06, 2007 2:58 PM
> > To: Maven Users List
> > Subject: Re: dependencies are bloated in M2
> >
> > Tandon, Pankaj wrote:
> >
> > >
> > >
> > >So the questions are:
> > >1. How can we control what get's into WEB-INF/lib. We tried all the
> > >scopes mentioned, but that did not help.
> > >
> > I believe that the scope that should work is "provided". The problem is
> > that I don't know if maven is smart enough to remove a provided
> > dependency from the transitive closure. I would call that a bug if it
> > didn't.
> >
> > --
> > cg
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
>
>
> --
> I could give you my word as a Spaniard.
> No good. I've known too many Spaniards.
>                             -- The Princess Bride
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: dependencies are bloated in M2

Posted by Edwin Punzalan <ep...@exist.com>.
I don't undestand this... since when did compile-time libraries become 
not needed in runtime ?  even servlet-api is needed at runtime, its just 
that they're being provided by the containers.  Please use exclusions.

 From how I see it, let's say we have Artifacts A, B and C.  A depends 
on B and C depends on A.

If C doesn't need use the portion of A that uses the library B, then C 
can put an exclude clause for B in his dependency in A.  That will work.

But if you put B as provided in A, then that may only be correct for C.  
What if there is another artifact D that depends on A entirely, 
including the portion which uses B ?  you then add dependency B into D's 
pom.  Then later on, you'll say why does D depend on B?  its not 
logically correct anymore.  So using exclusions is more appropriate.


Hope that helps.


^_^


Bashar Abdul Jawad wrote:
> It is the right solution. Using exclusions will exclude a dependency from
> being downloaded at all, which means it won't be available at any path.
> Using provided will still make the dependency available for compile time,
> but not in runtime, and will not bundle it in the package.
>
> Read maven FAQ: 
>
> http://maven.apache.org/general.html#scope-provided
>
>
>
> -----Original Message-----
> From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
> Sanchez
> Sent: Tuesday, February 06, 2007 4:29 PM
> To: Maven Users List
> Subject: Re: dependencies are bloated in M2
>
> that's not the right solution, you have to use exclusions
>
> On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
>   
>> It will. If you don't want to include a particular dependency in your
>> generated package just give it the provided scope, it will be excluded
>>     
> even
>   
>> if it was a transitive dependency of something else.
>>
>> Bashar
>>
>> -----Original Message-----
>> From: Christian Goetze [mailto:cg@miaow.com]
>> Sent: Tuesday, February 06, 2007 2:58 PM
>> To: Maven Users List
>> Subject: Re: dependencies are bloated in M2
>>
>> Tandon, Pankaj wrote:
>>
>>     
>>> So the questions are:
>>> 1. How can we control what get's into WEB-INF/lib. We tried all the
>>> scopes mentioned, but that did not help.
>>>
>>>       
>> I believe that the scope that should work is "provided". The problem is
>> that I don't know if maven is smart enough to remove a provided
>> dependency from the transitive closure. I would call that a bug if it
>> didn't.
>>
>> --
>> cg
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>
>>
>>     
>
>
>   

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: dependencies are bloated in M2

Posted by Carlos Sanchez <ca...@apache.org>.
everything you said is right ;)
in an ideal world the only reason to use exclusions is if you are not
using a portion of the library that the developer consider "required"
for most of the people

On 2/6/07, Craig McClanahan <cr...@apache.org> wrote:
> On 2/6/07, Carlos Sanchez <ca...@apache.org> wrote:
> >
> > exactly, that's why he needs to use exclusions, you exclude things
> > that you don't need.
>
>
> Exclusions can get you around immediate build problems, but a feedback loop
> is necessary to improve the state of the world in general, or the problem
> will just repeat itself the next time.
>
> If your project has a dependency "x", and that artifact has an optional
> dependency "y", the POM for "x" should explicity *say* it is optional.  That
> will cause the web project to do the right thing ... *not* copy in the
> optional dependencies unless you explicitly declare a dependency on them
> yourself.
>
> Thus, people who published depency "x" in this scenario need to be lobbied
> to get their POMs fixed in the next version, to stop causing everyone who
> uses Maven and their "x" library grief down the road.
>
> A classic case that I know of personally :-) is Jakarta Commons Logging,
> where the 1.1 version of the POM declares a dependency on the servlet API
> but mistakenly did not declare it to be optional.  Yes, you as a user of
> Commons Logging can use an exclusion to get rid of the unwanted file, but
> why should you (or anyone else) *have* to?  Wouldn't the "right thing" be to
> also go file a bug against C-L to fix their blasted POM?
>
> (You don't actually have to for this particular scenario ... the POM has
> been fixed in the trunk and a 1.1.1 release is likely very soon primarily to
> address this issue ... but my point is in general it is the people who
> publish broken POMs that should be complained at here, not Maven itself.)
>
> Craig McClanahan
>
>
> On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> > > It is the right solution. Using exclusions will exclude a dependency
> > from
> > > being downloaded at all, which means it won't be available at any path.
> > > Using provided will still make the dependency available for compile
> > time,
> > > but not in runtime, and will not bundle it in the package.
> > >
> > > Read maven FAQ:
> > >
> > > http://maven.apache.org/general.html#scope-provided
> > >
> > >
> > >
> > > -----Original Message-----
> > > From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
> > > Sanchez
> > > Sent: Tuesday, February 06, 2007 4:29 PM
> > > To: Maven Users List
> > > Subject: Re: dependencies are bloated in M2
> > >
> > > that's not the right solution, you have to use exclusions
> > >
> > > On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> > > > It will. If you don't want to include a particular dependency in your
> > > > generated package just give it the provided scope, it will be excluded
> > > even
> > > > if it was a transitive dependency of something else.
> > > >
> > > > Bashar
> > > >
> > > > -----Original Message-----
> > > > From: Christian Goetze [mailto:cg@miaow.com]
> > > > Sent: Tuesday, February 06, 2007 2:58 PM
> > > > To: Maven Users List
> > > > Subject: Re: dependencies are bloated in M2
> > > >
> > > > Tandon, Pankaj wrote:
> > > >
> > > > >
> > > > >
> > > > >So the questions are:
> > > > >1. How can we control what get's into WEB-INF/lib. We tried all the
> > > > >scopes mentioned, but that did not help.
> > > > >
> > > > I believe that the scope that should work is "provided". The problem
> > is
> > > > that I don't know if maven is smart enough to remove a provided
> > > > dependency from the transitive closure. I would call that a bug if it
> > > > didn't.
> > > >
> > > > --
> > > > cg
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > > For additional commands, e-mail: users-help@maven.apache.org
> > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > > For additional commands, e-mail: users-help@maven.apache.org
> > > >
> > > >
> > >
> > >
> > > --
> > > I could give you my word as a Spaniard.
> > > No good. I've known too many Spaniards.
> > >                              -- The Princess Bride
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > For additional commands, e-mail: users-help@maven.apache.org
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > For additional commands, e-mail: users-help@maven.apache.org
> > >
> > >
> >
> >
> > --
> > I could give you my word as a Spaniard.
> > No good. I've known too many Spaniards.
> >                              -- The Princess Bride
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
>


-- 
I could give you my word as a Spaniard.
No good. I've known too many Spaniards.
                             -- The Princess Bride

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: dependencies are bloated in M2

Posted by Craig McClanahan <cr...@apache.org>.
On 2/6/07, Carlos Sanchez <ca...@apache.org> wrote:
>
> exactly, that's why he needs to use exclusions, you exclude things
> that you don't need.


Exclusions can get you around immediate build problems, but a feedback loop
is necessary to improve the state of the world in general, or the problem
will just repeat itself the next time.

If your project has a dependency "x", and that artifact has an optional
dependency "y", the POM for "x" should explicity *say* it is optional.  That
will cause the web project to do the right thing ... *not* copy in the
optional dependencies unless you explicitly declare a dependency on them
yourself.

Thus, people who published depency "x" in this scenario need to be lobbied
to get their POMs fixed in the next version, to stop causing everyone who
uses Maven and their "x" library grief down the road.

A classic case that I know of personally :-) is Jakarta Commons Logging,
where the 1.1 version of the POM declares a dependency on the servlet API
but mistakenly did not declare it to be optional.  Yes, you as a user of
Commons Logging can use an exclusion to get rid of the unwanted file, but
why should you (or anyone else) *have* to?  Wouldn't the "right thing" be to
also go file a bug against C-L to fix their blasted POM?

(You don't actually have to for this particular scenario ... the POM has
been fixed in the trunk and a 1.1.1 release is likely very soon primarily to
address this issue ... but my point is in general it is the people who
publish broken POMs that should be complained at here, not Maven itself.)

Craig McClanahan


On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> > It is the right solution. Using exclusions will exclude a dependency
> from
> > being downloaded at all, which means it won't be available at any path.
> > Using provided will still make the dependency available for compile
> time,
> > but not in runtime, and will not bundle it in the package.
> >
> > Read maven FAQ:
> >
> > http://maven.apache.org/general.html#scope-provided
> >
> >
> >
> > -----Original Message-----
> > From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
> > Sanchez
> > Sent: Tuesday, February 06, 2007 4:29 PM
> > To: Maven Users List
> > Subject: Re: dependencies are bloated in M2
> >
> > that's not the right solution, you have to use exclusions
> >
> > On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> > > It will. If you don't want to include a particular dependency in your
> > > generated package just give it the provided scope, it will be excluded
> > even
> > > if it was a transitive dependency of something else.
> > >
> > > Bashar
> > >
> > > -----Original Message-----
> > > From: Christian Goetze [mailto:cg@miaow.com]
> > > Sent: Tuesday, February 06, 2007 2:58 PM
> > > To: Maven Users List
> > > Subject: Re: dependencies are bloated in M2
> > >
> > > Tandon, Pankaj wrote:
> > >
> > > >
> > > >
> > > >So the questions are:
> > > >1. How can we control what get's into WEB-INF/lib. We tried all the
> > > >scopes mentioned, but that did not help.
> > > >
> > > I believe that the scope that should work is "provided". The problem
> is
> > > that I don't know if maven is smart enough to remove a provided
> > > dependency from the transitive closure. I would call that a bug if it
> > > didn't.
> > >
> > > --
> > > cg
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > For additional commands, e-mail: users-help@maven.apache.org
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > For additional commands, e-mail: users-help@maven.apache.org
> > >
> > >
> >
> >
> > --
> > I could give you my word as a Spaniard.
> > No good. I've known too many Spaniards.
> >                              -- The Princess Bride
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
>
>
> --
> I could give you my word as a Spaniard.
> No good. I've known too many Spaniards.
>                              -- The Princess Bride
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>

Re: dependencies are bloated in M2

Posted by Carlos Sanchez <ca...@apache.org>.
build dependencies are added in plugin dependencies section so they
don't interfere with your code dependencies

On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> Yes, but sometimes you will need to use a dependency for compile time only,
> and NOT for runtime. You don't need the container to provide it for you
> either because it is not required for runtime. Example: aspectjtools.jar.
> You can't exclude it because your project will not compile. The only way is
> to give it the provided scope. Even if your container doesn't provide it
> that's not a problem, maven doesn't care. I know it is not very clean to
> give a dependency a provided scope when it's not going to be provided
> anywhere, but sometimes you need to do this if you want to compile against
> it.
>
> Bashar
>
> -----Original Message-----
> From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
> Sanchez
> Sent: Tuesday, February 06, 2007 5:18 PM
> To: Maven Users List
> Subject: Re: dependencies are bloated in M2
>
> still not right, you have to use exclusions
> provided means the environment (read appserver) "provides" that
> dependency, which is only true for few dependencies in the whole
> world, like servlet-api
>
> On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> >
> > This is the question I was answering:
> >
> > >Tandon, Pankaj wrote:
> > >
> > >1. How can we control what get's into WEB-INF/lib. We tried all the
> > >scopes mentioned, but that did not help.
> >
> > And it's follow up:
> >
> > > >Christian Goetze wrote:
> > > >
> > > > I believe that the scope that should work is "provided". The problem
> is
> > > > that I don't know if maven is smart enough to remove a provided
> > > > dependency from the transitive closure. I would call that a bug if it
> > > > didn't.
> >
> > And the answer to these 2 questions is to use the provided scope. It will
> > also stop a dependency from being passed on transitively. Using exclusions
> > is NOT right if you still want to compile against these dependencies.
> >
> > Bashar
> >
> >
> > -----Original Message-----
> > From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
> > Sanchez
> > Sent: Tuesday, February 06, 2007 5:02 PM
> > To: Maven Users List
> > Subject: Re: dependencies are bloated in M2
> >
> > exactly, that's why he needs to use exclusions, you exclude things
> > that you don't need.
> >
> > On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> > > It is the right solution. Using exclusions will exclude a dependency
> from
> > > being downloaded at all, which means it won't be available at any path.
> > > Using provided will still make the dependency available for compile
> time,
> > > but not in runtime, and will not bundle it in the package.
> > >
> > > Read maven FAQ:
> > >
> > > http://maven.apache.org/general.html#scope-provided
> > >
> > >
> > >
> > > -----Original Message-----
> > > From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
> > > Sanchez
> > > Sent: Tuesday, February 06, 2007 4:29 PM
> > > To: Maven Users List
> > > Subject: Re: dependencies are bloated in M2
> > >
> > > that's not the right solution, you have to use exclusions
> > >
> > > On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> > > > It will. If you don't want to include a particular dependency in your
> > > > generated package just give it the provided scope, it will be excluded
> > > even
> > > > if it was a transitive dependency of something else.
> > > >
> > > > Bashar
> > > >
> > > > -----Original Message-----
> > > > From: Christian Goetze [mailto:cg@miaow.com]
> > > > Sent: Tuesday, February 06, 2007 2:58 PM
> > > > To: Maven Users List
> > > > Subject: Re: dependencies are bloated in M2
> > > >
> > > > Tandon, Pankaj wrote:
> > > >
> > > > >
> > > > >
> > > > >So the questions are:
> > > > >1. How can we control what get's into WEB-INF/lib. We tried all the
> > > > >scopes mentioned, but that did not help.
> > > > >
> > > > I believe that the scope that should work is "provided". The problem
> is
> > > > that I don't know if maven is smart enough to remove a provided
> > > > dependency from the transitive closure. I would call that a bug if it
> > > > didn't.
> > > >
> > > > --
> > > > cg
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > > For additional commands, e-mail: users-help@maven.apache.org
> > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > > For additional commands, e-mail: users-help@maven.apache.org
> > > >
> > > >
> > >
> > >
> > > --
> > > I could give you my word as a Spaniard.
> > > No good. I've known too many Spaniards.
> > >                              -- The Princess Bride
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > For additional commands, e-mail: users-help@maven.apache.org
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > For additional commands, e-mail: users-help@maven.apache.org
> > >
> > >
> >
> >
> > --
> > I could give you my word as a Spaniard.
> > No good. I've known too many Spaniards.
> >                              -- The Princess Bride
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
>
>
> --
> I could give you my word as a Spaniard.
> No good. I've known too many Spaniards.
>                              -- The Princess Bride
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>


-- 
I could give you my word as a Spaniard.
No good. I've known too many Spaniards.
                             -- The Princess Bride

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: dependencies are bloated in M2

Posted by PankajTandon <Pa...@crowncastle.com>.
FWIW, I want to mention that we did end up using exclusions and that did the
trick. What I was missing was how could I find what was dependent on what.
For that the mvn site | Dependency Report provided the answer. From there it
was a matter of <excluding> the dependencies I did not want. 
Painful but effective. 
So I was hoping that there would be a POM level <exclusions> element that
would exclude the dependencies from all the artifacts in that POM. That
would be useful.

Thanks for the clarifications on the "provided" vs "exclusion" concept.
Using Provided does seem a little hokey.

Pankaj


craigmcc wrote:
> 
> On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
>>
>> Yes, but sometimes you will need to use a dependency for compile time
>> only,
>> and NOT for runtime. You don't need the container to provide it for you
>> either because it is not required for runtime. Example: aspectjtools.jar.
>> You can't exclude it because your project will not compile. The only way
>> is
>> to give it the provided scope.
> 
> 
> That is not correct.  Declaring a dependency to be optional puts it on the
> compile classpath, but avoids any attempt to include it at runtime.
> 
> 
> Even if your container doesn't provide it
>> that's not a problem, maven doesn't care. I know it is not very clean to
>> give a dependency a provided scope when it's not going to be provided
>> anywhere, but sometimes you need to do this if you want to compile
>> against
>> it.
> 
> 
> The semantics of "provided" are different than "optional" even though
> Maven
> does not enforce it.
> 
> The code you write against a "provided" API assumes that the API will
> indeed
> be provided by the container.  As an example, you might declare as
> "provided" a library that you've installed in Tomcat's common/lib
> directory.  The library must be there in order for the application to
> function -- but Maven can assume that it will indeed by supplied by the
> container, so won't include it in the WAR.
> 
> "Optional", on the other hand, means what it says.  Declaring such a
> dependency means that you will need it available at compile time FOR THE
> DEPENDENCY, but not necessarily for your own code (unless you explicitly
> need it for other reasons).  The library is explicitly NOT required at
> runtime, because your dependency has said, in effect, "I can use this
> library if it exists, but if it does not, no harm no foul."
> 
> Note also that "optional" is NOT a scope -- it is a completely separate
> element.  That is because the concept of being optional is orthogonal to
> scope ... it's perfectly reasonable, for example, to have an optional
> module
> with "compile" scope if your build process knows how to intelligently deal
> with that combination.
> 
> PLEASE do not misuse "provided" scope to mean the "optional" element or
> vice
> versa.  PLEASE set up your POMs to say what you mean.  These are two
> DIFFERENT concepts!
> 
> Craig
> 
> Bashar
>>
>> -----Original Message-----
>> From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
>> Sanchez
>> Sent: Tuesday, February 06, 2007 5:18 PM
>> To: Maven Users List
>> Subject: Re: dependencies are bloated in M2
>>
>> still not right, you have to use exclusions
>> provided means the environment (read appserver) "provides" that
>> dependency, which is only true for few dependencies in the whole
>> world, like servlet-api
>>
>> On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
>> >
>> > This is the question I was answering:
>> >
>> > >Tandon, Pankaj wrote:
>> > >
>> > >1. How can we control what get's into WEB-INF/lib. We tried all the
>> > >scopes mentioned, but that did not help.
>> >
>> > And it's follow up:
>> >
>> > > >Christian Goetze wrote:
>> > > >
>> > > > I believe that the scope that should work is "provided". The
>> problem
>> is
>> > > > that I don't know if maven is smart enough to remove a provided
>> > > > dependency from the transitive closure. I would call that a bug if
>> it
>> > > > didn't.
>> >
>> > And the answer to these 2 questions is to use the provided scope. It
>> will
>> > also stop a dependency from being passed on transitively. Using
>> exclusions
>> > is NOT right if you still want to compile against these dependencies.
>> >
>> > Bashar
>> >
>> >
>> > -----Original Message-----
>> > From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of
>> Carlos
>> > Sanchez
>> > Sent: Tuesday, February 06, 2007 5:02 PM
>> > To: Maven Users List
>> > Subject: Re: dependencies are bloated in M2
>> >
>> > exactly, that's why he needs to use exclusions, you exclude things
>> > that you don't need.
>> >
>> > On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
>> > > It is the right solution. Using exclusions will exclude a dependency
>> from
>> > > being downloaded at all, which means it won't be available at any
>> path.
>> > > Using provided will still make the dependency available for compile
>> time,
>> > > but not in runtime, and will not bundle it in the package.
>> > >
>> > > Read maven FAQ:
>> > >
>> > > http://maven.apache.org/general.html#scope-provided
>> > >
>> > >
>> > >
>> > > -----Original Message-----
>> > > From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of
>> Carlos
>> > > Sanchez
>> > > Sent: Tuesday, February 06, 2007 4:29 PM
>> > > To: Maven Users List
>> > > Subject: Re: dependencies are bloated in M2
>> > >
>> > > that's not the right solution, you have to use exclusions
>> > >
>> > > On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
>> > > > It will. If you don't want to include a particular dependency in
>> your
>> > > > generated package just give it the provided scope, it will be
>> excluded
>> > > even
>> > > > if it was a transitive dependency of something else.
>> > > >
>> > > > Bashar
>> > > >
>> > > > -----Original Message-----
>> > > > From: Christian Goetze [mailto:cg@miaow.com]
>> > > > Sent: Tuesday, February 06, 2007 2:58 PM
>> > > > To: Maven Users List
>> > > > Subject: Re: dependencies are bloated in M2
>> > > >
>> > > > Tandon, Pankaj wrote:
>> > > >
>> > > > >
>> > > > >
>> > > > >So the questions are:
>> > > > >1. How can we control what get's into WEB-INF/lib. We tried all
>> the
>> > > > >scopes mentioned, but that did not help.
>> > > > >
>> > > > I believe that the scope that should work is "provided". The
>> problem
>> is
>> > > > that I don't know if maven is smart enough to remove a provided
>> > > > dependency from the transitive closure. I would call that a bug if
>> it
>> > > > didn't.
>> > > >
>> > > > --
>> > > > cg
>> > > >
>> > > >
>> ---------------------------------------------------------------------
>> > > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> > > > For additional commands, e-mail: users-help@maven.apache.org
>> > > >
>> > > >
>> > > >
>> ---------------------------------------------------------------------
>> > > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> > > > For additional commands, e-mail: users-help@maven.apache.org
>> > > >
>> > > >
>> > >
>> > >
>> > > --
>> > > I could give you my word as a Spaniard.
>> > > No good. I've known too many Spaniards.
>> > >                              -- The Princess Bride
>> > >
>> > > ---------------------------------------------------------------------
>> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> > > For additional commands, e-mail: users-help@maven.apache.org
>> > >
>> > >
>> > > ---------------------------------------------------------------------
>> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> > > For additional commands, e-mail: users-help@maven.apache.org
>> > >
>> > >
>> >
>> >
>> > --
>> > I could give you my word as a Spaniard.
>> > No good. I've known too many Spaniards.
>> >                              -- The Princess Bride
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> > For additional commands, e-mail: users-help@maven.apache.org
>> >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> > For additional commands, e-mail: users-help@maven.apache.org
>> >
>> >
>>
>>
>> --
>> I could give you my word as a Spaniard.
>> No good. I've known too many Spaniards.
>>                              -- The Princess Bride
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/dependencies-are-bloated-in-M2-tf3182336s177.html#a8846301
Sent from the Maven - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


RE: dependencies are bloated in M2

Posted by Bashar Abdul Jawad <bj...@vmsinfo.com>.
Thanks for clearing that up. I think this discussion made it more clear what
is the difference among provided, optional and exclusions. Sorry if I
confused anyone.

Bashar

-----Original Message-----
From: craigmcc@gmail.com [mailto:craigmcc@gmail.com] On Behalf Of Craig
McClanahan
Sent: Tuesday, February 06, 2007 11:18 PM
To: Maven Users List
Subject: Re: dependencies are bloated in M2

On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
>
> Yes, but sometimes you will need to use a dependency for compile time
> only,
> and NOT for runtime. You don't need the container to provide it for you
> either because it is not required for runtime. Example: aspectjtools.jar.
> You can't exclude it because your project will not compile. The only way
> is
> to give it the provided scope.


That is not correct.  Declaring a dependency to be optional puts it on the
compile classpath, but avoids any attempt to include it at runtime.


Even if your container doesn't provide it
> that's not a problem, maven doesn't care. I know it is not very clean to
> give a dependency a provided scope when it's not going to be provided
> anywhere, but sometimes you need to do this if you want to compile against
> it.


The semantics of "provided" are different than "optional" even though Maven
does not enforce it.

The code you write against a "provided" API assumes that the API will indeed
be provided by the container.  As an example, you might declare as
"provided" a library that you've installed in Tomcat's common/lib
directory.  The library must be there in order for the application to
function -- but Maven can assume that it will indeed by supplied by the
container, so won't include it in the WAR.

"Optional", on the other hand, means what it says.  Declaring such a
dependency means that you will need it available at compile time FOR THE
DEPENDENCY, but not necessarily for your own code (unless you explicitly
need it for other reasons).  The library is explicitly NOT required at
runtime, because your dependency has said, in effect, "I can use this
library if it exists, but if it does not, no harm no foul."

Note also that "optional" is NOT a scope -- it is a completely separate
element.  That is because the concept of being optional is orthogonal to
scope ... it's perfectly reasonable, for example, to have an optional module
with "compile" scope if your build process knows how to intelligently deal
with that combination.

PLEASE do not misuse "provided" scope to mean the "optional" element or vice
versa.  PLEASE set up your POMs to say what you mean.  These are two
DIFFERENT concepts!

Craig

Bashar
>
> -----Original Message-----
> From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
> Sanchez
> Sent: Tuesday, February 06, 2007 5:18 PM
> To: Maven Users List
> Subject: Re: dependencies are bloated in M2
>
> still not right, you have to use exclusions
> provided means the environment (read appserver) "provides" that
> dependency, which is only true for few dependencies in the whole
> world, like servlet-api
>
> On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> >
> > This is the question I was answering:
> >
> > >Tandon, Pankaj wrote:
> > >
> > >1. How can we control what get's into WEB-INF/lib. We tried all the
> > >scopes mentioned, but that did not help.
> >
> > And it's follow up:
> >
> > > >Christian Goetze wrote:
> > > >
> > > > I believe that the scope that should work is "provided". The problem
> is
> > > > that I don't know if maven is smart enough to remove a provided
> > > > dependency from the transitive closure. I would call that a bug if
> it
> > > > didn't.
> >
> > And the answer to these 2 questions is to use the provided scope. It
> will
> > also stop a dependency from being passed on transitively. Using
> exclusions
> > is NOT right if you still want to compile against these dependencies.
> >
> > Bashar
> >
> >
> > -----Original Message-----
> > From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
> > Sanchez
> > Sent: Tuesday, February 06, 2007 5:02 PM
> > To: Maven Users List
> > Subject: Re: dependencies are bloated in M2
> >
> > exactly, that's why he needs to use exclusions, you exclude things
> > that you don't need.
> >
> > On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> > > It is the right solution. Using exclusions will exclude a dependency
> from
> > > being downloaded at all, which means it won't be available at any
> path.
> > > Using provided will still make the dependency available for compile
> time,
> > > but not in runtime, and will not bundle it in the package.
> > >
> > > Read maven FAQ:
> > >
> > > http://maven.apache.org/general.html#scope-provided
> > >
> > >
> > >
> > > -----Original Message-----
> > > From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of
> Carlos
> > > Sanchez
> > > Sent: Tuesday, February 06, 2007 4:29 PM
> > > To: Maven Users List
> > > Subject: Re: dependencies are bloated in M2
> > >
> > > that's not the right solution, you have to use exclusions
> > >
> > > On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> > > > It will. If you don't want to include a particular dependency in
> your
> > > > generated package just give it the provided scope, it will be
> excluded
> > > even
> > > > if it was a transitive dependency of something else.
> > > >
> > > > Bashar
> > > >
> > > > -----Original Message-----
> > > > From: Christian Goetze [mailto:cg@miaow.com]
> > > > Sent: Tuesday, February 06, 2007 2:58 PM
> > > > To: Maven Users List
> > > > Subject: Re: dependencies are bloated in M2
> > > >
> > > > Tandon, Pankaj wrote:
> > > >
> > > > >
> > > > >
> > > > >So the questions are:
> > > > >1. How can we control what get's into WEB-INF/lib. We tried all the
> > > > >scopes mentioned, but that did not help.
> > > > >
> > > > I believe that the scope that should work is "provided". The problem
> is
> > > > that I don't know if maven is smart enough to remove a provided
> > > > dependency from the transitive closure. I would call that a bug if
> it
> > > > didn't.
> > > >
> > > > --
> > > > cg
> > > >
> > > >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > > For additional commands, e-mail: users-help@maven.apache.org
> > > >
> > > >
> > > >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > > For additional commands, e-mail: users-help@maven.apache.org
> > > >
> > > >
> > >
> > >
> > > --
> > > I could give you my word as a Spaniard.
> > > No good. I've known too many Spaniards.
> > >                              -- The Princess Bride
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > For additional commands, e-mail: users-help@maven.apache.org
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > For additional commands, e-mail: users-help@maven.apache.org
> > >
> > >
> >
> >
> > --
> > I could give you my word as a Spaniard.
> > No good. I've known too many Spaniards.
> >                              -- The Princess Bride
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
>
>
> --
> I could give you my word as a Spaniard.
> No good. I've known too many Spaniards.
>                              -- The Princess Bride
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: dependencies are bloated in M2

Posted by Craig McClanahan <cr...@apache.org>.
On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
>
> Yes, but sometimes you will need to use a dependency for compile time
> only,
> and NOT for runtime. You don't need the container to provide it for you
> either because it is not required for runtime. Example: aspectjtools.jar.
> You can't exclude it because your project will not compile. The only way
> is
> to give it the provided scope.


That is not correct.  Declaring a dependency to be optional puts it on the
compile classpath, but avoids any attempt to include it at runtime.


Even if your container doesn't provide it
> that's not a problem, maven doesn't care. I know it is not very clean to
> give a dependency a provided scope when it's not going to be provided
> anywhere, but sometimes you need to do this if you want to compile against
> it.


The semantics of "provided" are different than "optional" even though Maven
does not enforce it.

The code you write against a "provided" API assumes that the API will indeed
be provided by the container.  As an example, you might declare as
"provided" a library that you've installed in Tomcat's common/lib
directory.  The library must be there in order for the application to
function -- but Maven can assume that it will indeed by supplied by the
container, so won't include it in the WAR.

"Optional", on the other hand, means what it says.  Declaring such a
dependency means that you will need it available at compile time FOR THE
DEPENDENCY, but not necessarily for your own code (unless you explicitly
need it for other reasons).  The library is explicitly NOT required at
runtime, because your dependency has said, in effect, "I can use this
library if it exists, but if it does not, no harm no foul."

Note also that "optional" is NOT a scope -- it is a completely separate
element.  That is because the concept of being optional is orthogonal to
scope ... it's perfectly reasonable, for example, to have an optional module
with "compile" scope if your build process knows how to intelligently deal
with that combination.

PLEASE do not misuse "provided" scope to mean the "optional" element or vice
versa.  PLEASE set up your POMs to say what you mean.  These are two
DIFFERENT concepts!

Craig

Bashar
>
> -----Original Message-----
> From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
> Sanchez
> Sent: Tuesday, February 06, 2007 5:18 PM
> To: Maven Users List
> Subject: Re: dependencies are bloated in M2
>
> still not right, you have to use exclusions
> provided means the environment (read appserver) "provides" that
> dependency, which is only true for few dependencies in the whole
> world, like servlet-api
>
> On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> >
> > This is the question I was answering:
> >
> > >Tandon, Pankaj wrote:
> > >
> > >1. How can we control what get's into WEB-INF/lib. We tried all the
> > >scopes mentioned, but that did not help.
> >
> > And it's follow up:
> >
> > > >Christian Goetze wrote:
> > > >
> > > > I believe that the scope that should work is "provided". The problem
> is
> > > > that I don't know if maven is smart enough to remove a provided
> > > > dependency from the transitive closure. I would call that a bug if
> it
> > > > didn't.
> >
> > And the answer to these 2 questions is to use the provided scope. It
> will
> > also stop a dependency from being passed on transitively. Using
> exclusions
> > is NOT right if you still want to compile against these dependencies.
> >
> > Bashar
> >
> >
> > -----Original Message-----
> > From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
> > Sanchez
> > Sent: Tuesday, February 06, 2007 5:02 PM
> > To: Maven Users List
> > Subject: Re: dependencies are bloated in M2
> >
> > exactly, that's why he needs to use exclusions, you exclude things
> > that you don't need.
> >
> > On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> > > It is the right solution. Using exclusions will exclude a dependency
> from
> > > being downloaded at all, which means it won't be available at any
> path.
> > > Using provided will still make the dependency available for compile
> time,
> > > but not in runtime, and will not bundle it in the package.
> > >
> > > Read maven FAQ:
> > >
> > > http://maven.apache.org/general.html#scope-provided
> > >
> > >
> > >
> > > -----Original Message-----
> > > From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of
> Carlos
> > > Sanchez
> > > Sent: Tuesday, February 06, 2007 4:29 PM
> > > To: Maven Users List
> > > Subject: Re: dependencies are bloated in M2
> > >
> > > that's not the right solution, you have to use exclusions
> > >
> > > On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> > > > It will. If you don't want to include a particular dependency in
> your
> > > > generated package just give it the provided scope, it will be
> excluded
> > > even
> > > > if it was a transitive dependency of something else.
> > > >
> > > > Bashar
> > > >
> > > > -----Original Message-----
> > > > From: Christian Goetze [mailto:cg@miaow.com]
> > > > Sent: Tuesday, February 06, 2007 2:58 PM
> > > > To: Maven Users List
> > > > Subject: Re: dependencies are bloated in M2
> > > >
> > > > Tandon, Pankaj wrote:
> > > >
> > > > >
> > > > >
> > > > >So the questions are:
> > > > >1. How can we control what get's into WEB-INF/lib. We tried all the
> > > > >scopes mentioned, but that did not help.
> > > > >
> > > > I believe that the scope that should work is "provided". The problem
> is
> > > > that I don't know if maven is smart enough to remove a provided
> > > > dependency from the transitive closure. I would call that a bug if
> it
> > > > didn't.
> > > >
> > > > --
> > > > cg
> > > >
> > > >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > > For additional commands, e-mail: users-help@maven.apache.org
> > > >
> > > >
> > > >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > > For additional commands, e-mail: users-help@maven.apache.org
> > > >
> > > >
> > >
> > >
> > > --
> > > I could give you my word as a Spaniard.
> > > No good. I've known too many Spaniards.
> > >                              -- The Princess Bride
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > For additional commands, e-mail: users-help@maven.apache.org
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > For additional commands, e-mail: users-help@maven.apache.org
> > >
> > >
> >
> >
> > --
> > I could give you my word as a Spaniard.
> > No good. I've known too many Spaniards.
> >                              -- The Princess Bride
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
>
>
> --
> I could give you my word as a Spaniard.
> No good. I've known too many Spaniards.
>                              -- The Princess Bride
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>

RE: dependencies are bloated in M2

Posted by Bashar Abdul Jawad <bj...@vmsinfo.com>.
Yes, but sometimes you will need to use a dependency for compile time only,
and NOT for runtime. You don't need the container to provide it for you
either because it is not required for runtime. Example: aspectjtools.jar.
You can't exclude it because your project will not compile. The only way is
to give it the provided scope. Even if your container doesn't provide it
that's not a problem, maven doesn't care. I know it is not very clean to
give a dependency a provided scope when it's not going to be provided
anywhere, but sometimes you need to do this if you want to compile against
it.

Bashar

-----Original Message-----
From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
Sanchez
Sent: Tuesday, February 06, 2007 5:18 PM
To: Maven Users List
Subject: Re: dependencies are bloated in M2

still not right, you have to use exclusions
provided means the environment (read appserver) "provides" that
dependency, which is only true for few dependencies in the whole
world, like servlet-api

On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
>
> This is the question I was answering:
>
> >Tandon, Pankaj wrote:
> >
> >1. How can we control what get's into WEB-INF/lib. We tried all the
> >scopes mentioned, but that did not help.
>
> And it's follow up:
>
> > >Christian Goetze wrote:
> > >
> > > I believe that the scope that should work is "provided". The problem
is
> > > that I don't know if maven is smart enough to remove a provided
> > > dependency from the transitive closure. I would call that a bug if it
> > > didn't.
>
> And the answer to these 2 questions is to use the provided scope. It will
> also stop a dependency from being passed on transitively. Using exclusions
> is NOT right if you still want to compile against these dependencies.
>
> Bashar
>
>
> -----Original Message-----
> From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
> Sanchez
> Sent: Tuesday, February 06, 2007 5:02 PM
> To: Maven Users List
> Subject: Re: dependencies are bloated in M2
>
> exactly, that's why he needs to use exclusions, you exclude things
> that you don't need.
>
> On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> > It is the right solution. Using exclusions will exclude a dependency
from
> > being downloaded at all, which means it won't be available at any path.
> > Using provided will still make the dependency available for compile
time,
> > but not in runtime, and will not bundle it in the package.
> >
> > Read maven FAQ:
> >
> > http://maven.apache.org/general.html#scope-provided
> >
> >
> >
> > -----Original Message-----
> > From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
> > Sanchez
> > Sent: Tuesday, February 06, 2007 4:29 PM
> > To: Maven Users List
> > Subject: Re: dependencies are bloated in M2
> >
> > that's not the right solution, you have to use exclusions
> >
> > On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> > > It will. If you don't want to include a particular dependency in your
> > > generated package just give it the provided scope, it will be excluded
> > even
> > > if it was a transitive dependency of something else.
> > >
> > > Bashar
> > >
> > > -----Original Message-----
> > > From: Christian Goetze [mailto:cg@miaow.com]
> > > Sent: Tuesday, February 06, 2007 2:58 PM
> > > To: Maven Users List
> > > Subject: Re: dependencies are bloated in M2
> > >
> > > Tandon, Pankaj wrote:
> > >
> > > >
> > > >
> > > >So the questions are:
> > > >1. How can we control what get's into WEB-INF/lib. We tried all the
> > > >scopes mentioned, but that did not help.
> > > >
> > > I believe that the scope that should work is "provided". The problem
is
> > > that I don't know if maven is smart enough to remove a provided
> > > dependency from the transitive closure. I would call that a bug if it
> > > didn't.
> > >
> > > --
> > > cg
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > For additional commands, e-mail: users-help@maven.apache.org
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > For additional commands, e-mail: users-help@maven.apache.org
> > >
> > >
> >
> >
> > --
> > I could give you my word as a Spaniard.
> > No good. I've known too many Spaniards.
> >                              -- The Princess Bride
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
>
>
> --
> I could give you my word as a Spaniard.
> No good. I've known too many Spaniards.
>                              -- The Princess Bride
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>


-- 
I could give you my word as a Spaniard.
No good. I've known too many Spaniards.
                             -- The Princess Bride

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: dependencies are bloated in M2

Posted by Carlos Sanchez <ca...@apache.org>.
still not right, you have to use exclusions
provided means the environment (read appserver) "provides" that
dependency, which is only true for few dependencies in the whole
world, like servlet-api

On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
>
> This is the question I was answering:
>
> >Tandon, Pankaj wrote:
> >
> >1. How can we control what get's into WEB-INF/lib. We tried all the
> >scopes mentioned, but that did not help.
>
> And it's follow up:
>
> > >Christian Goetze wrote:
> > >
> > > I believe that the scope that should work is "provided". The problem is
> > > that I don't know if maven is smart enough to remove a provided
> > > dependency from the transitive closure. I would call that a bug if it
> > > didn't.
>
> And the answer to these 2 questions is to use the provided scope. It will
> also stop a dependency from being passed on transitively. Using exclusions
> is NOT right if you still want to compile against these dependencies.
>
> Bashar
>
>
> -----Original Message-----
> From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
> Sanchez
> Sent: Tuesday, February 06, 2007 5:02 PM
> To: Maven Users List
> Subject: Re: dependencies are bloated in M2
>
> exactly, that's why he needs to use exclusions, you exclude things
> that you don't need.
>
> On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> > It is the right solution. Using exclusions will exclude a dependency from
> > being downloaded at all, which means it won't be available at any path.
> > Using provided will still make the dependency available for compile time,
> > but not in runtime, and will not bundle it in the package.
> >
> > Read maven FAQ:
> >
> > http://maven.apache.org/general.html#scope-provided
> >
> >
> >
> > -----Original Message-----
> > From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
> > Sanchez
> > Sent: Tuesday, February 06, 2007 4:29 PM
> > To: Maven Users List
> > Subject: Re: dependencies are bloated in M2
> >
> > that's not the right solution, you have to use exclusions
> >
> > On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> > > It will. If you don't want to include a particular dependency in your
> > > generated package just give it the provided scope, it will be excluded
> > even
> > > if it was a transitive dependency of something else.
> > >
> > > Bashar
> > >
> > > -----Original Message-----
> > > From: Christian Goetze [mailto:cg@miaow.com]
> > > Sent: Tuesday, February 06, 2007 2:58 PM
> > > To: Maven Users List
> > > Subject: Re: dependencies are bloated in M2
> > >
> > > Tandon, Pankaj wrote:
> > >
> > > >
> > > >
> > > >So the questions are:
> > > >1. How can we control what get's into WEB-INF/lib. We tried all the
> > > >scopes mentioned, but that did not help.
> > > >
> > > I believe that the scope that should work is "provided". The problem is
> > > that I don't know if maven is smart enough to remove a provided
> > > dependency from the transitive closure. I would call that a bug if it
> > > didn't.
> > >
> > > --
> > > cg
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > For additional commands, e-mail: users-help@maven.apache.org
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > > For additional commands, e-mail: users-help@maven.apache.org
> > >
> > >
> >
> >
> > --
> > I could give you my word as a Spaniard.
> > No good. I've known too many Spaniards.
> >                              -- The Princess Bride
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
>
>
> --
> I could give you my word as a Spaniard.
> No good. I've known too many Spaniards.
>                              -- The Princess Bride
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>


-- 
I could give you my word as a Spaniard.
No good. I've known too many Spaniards.
                             -- The Princess Bride

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


RE: dependencies are bloated in M2

Posted by Bashar Abdul Jawad <bj...@vmsinfo.com>.
This is the question I was answering:

>Tandon, Pankaj wrote:
>
>1. How can we control what get's into WEB-INF/lib. We tried all the 
>scopes mentioned, but that did not help.

And it's follow up:

> >Christian Goetze wrote:
> >
> > I believe that the scope that should work is "provided". The problem is
> > that I don't know if maven is smart enough to remove a provided
> > dependency from the transitive closure. I would call that a bug if it
> > didn't.

And the answer to these 2 questions is to use the provided scope. It will
also stop a dependency from being passed on transitively. Using exclusions
is NOT right if you still want to compile against these dependencies.

Bashar


-----Original Message-----
From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
Sanchez
Sent: Tuesday, February 06, 2007 5:02 PM
To: Maven Users List
Subject: Re: dependencies are bloated in M2

exactly, that's why he needs to use exclusions, you exclude things
that you don't need.

On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> It is the right solution. Using exclusions will exclude a dependency from
> being downloaded at all, which means it won't be available at any path.
> Using provided will still make the dependency available for compile time,
> but not in runtime, and will not bundle it in the package.
>
> Read maven FAQ:
>
> http://maven.apache.org/general.html#scope-provided
>
>
>
> -----Original Message-----
> From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
> Sanchez
> Sent: Tuesday, February 06, 2007 4:29 PM
> To: Maven Users List
> Subject: Re: dependencies are bloated in M2
>
> that's not the right solution, you have to use exclusions
>
> On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> > It will. If you don't want to include a particular dependency in your
> > generated package just give it the provided scope, it will be excluded
> even
> > if it was a transitive dependency of something else.
> >
> > Bashar
> >
> > -----Original Message-----
> > From: Christian Goetze [mailto:cg@miaow.com]
> > Sent: Tuesday, February 06, 2007 2:58 PM
> > To: Maven Users List
> > Subject: Re: dependencies are bloated in M2
> >
> > Tandon, Pankaj wrote:
> >
> > >
> > >
> > >So the questions are:
> > >1. How can we control what get's into WEB-INF/lib. We tried all the
> > >scopes mentioned, but that did not help.
> > >
> > I believe that the scope that should work is "provided". The problem is
> > that I don't know if maven is smart enough to remove a provided
> > dependency from the transitive closure. I would call that a bug if it
> > didn't.
> >
> > --
> > cg
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
>
>
> --
> I could give you my word as a Spaniard.
> No good. I've known too many Spaniards.
>                              -- The Princess Bride
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>


-- 
I could give you my word as a Spaniard.
No good. I've known too many Spaniards.
                             -- The Princess Bride

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: dependencies are bloated in M2

Posted by Carlos Sanchez <ca...@apache.org>.
exactly, that's why he needs to use exclusions, you exclude things
that you don't need.

On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> It is the right solution. Using exclusions will exclude a dependency from
> being downloaded at all, which means it won't be available at any path.
> Using provided will still make the dependency available for compile time,
> but not in runtime, and will not bundle it in the package.
>
> Read maven FAQ:
>
> http://maven.apache.org/general.html#scope-provided
>
>
>
> -----Original Message-----
> From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
> Sanchez
> Sent: Tuesday, February 06, 2007 4:29 PM
> To: Maven Users List
> Subject: Re: dependencies are bloated in M2
>
> that's not the right solution, you have to use exclusions
>
> On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> > It will. If you don't want to include a particular dependency in your
> > generated package just give it the provided scope, it will be excluded
> even
> > if it was a transitive dependency of something else.
> >
> > Bashar
> >
> > -----Original Message-----
> > From: Christian Goetze [mailto:cg@miaow.com]
> > Sent: Tuesday, February 06, 2007 2:58 PM
> > To: Maven Users List
> > Subject: Re: dependencies are bloated in M2
> >
> > Tandon, Pankaj wrote:
> >
> > >
> > >
> > >So the questions are:
> > >1. How can we control what get's into WEB-INF/lib. We tried all the
> > >scopes mentioned, but that did not help.
> > >
> > I believe that the scope that should work is "provided". The problem is
> > that I don't know if maven is smart enough to remove a provided
> > dependency from the transitive closure. I would call that a bug if it
> > didn't.
> >
> > --
> > cg
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
>
>
> --
> I could give you my word as a Spaniard.
> No good. I've known too many Spaniards.
>                              -- The Princess Bride
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>


-- 
I could give you my word as a Spaniard.
No good. I've known too many Spaniards.
                             -- The Princess Bride

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


RE: dependencies are bloated in M2

Posted by Bashar Abdul Jawad <bj...@vmsinfo.com>.
It is the right solution. Using exclusions will exclude a dependency from
being downloaded at all, which means it won't be available at any path.
Using provided will still make the dependency available for compile time,
but not in runtime, and will not bundle it in the package.

Read maven FAQ: 

http://maven.apache.org/general.html#scope-provided



-----Original Message-----
From: carlossg@gmail.com [mailto:carlossg@gmail.com] On Behalf Of Carlos
Sanchez
Sent: Tuesday, February 06, 2007 4:29 PM
To: Maven Users List
Subject: Re: dependencies are bloated in M2

that's not the right solution, you have to use exclusions

On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> It will. If you don't want to include a particular dependency in your
> generated package just give it the provided scope, it will be excluded
even
> if it was a transitive dependency of something else.
>
> Bashar
>
> -----Original Message-----
> From: Christian Goetze [mailto:cg@miaow.com]
> Sent: Tuesday, February 06, 2007 2:58 PM
> To: Maven Users List
> Subject: Re: dependencies are bloated in M2
>
> Tandon, Pankaj wrote:
>
> >
> >
> >So the questions are:
> >1. How can we control what get's into WEB-INF/lib. We tried all the
> >scopes mentioned, but that did not help.
> >
> I believe that the scope that should work is "provided". The problem is
> that I don't know if maven is smart enough to remove a provided
> dependency from the transitive closure. I would call that a bug if it
> didn't.
>
> --
> cg
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>


-- 
I could give you my word as a Spaniard.
No good. I've known too many Spaniards.
                             -- The Princess Bride

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: dependencies are bloated in M2

Posted by Carlos Sanchez <ca...@apache.org>.
that's not the right solution, you have to use exclusions

On 2/6/07, Bashar Abdul Jawad <bj...@vmsinfo.com> wrote:
> It will. If you don't want to include a particular dependency in your
> generated package just give it the provided scope, it will be excluded even
> if it was a transitive dependency of something else.
>
> Bashar
>
> -----Original Message-----
> From: Christian Goetze [mailto:cg@miaow.com]
> Sent: Tuesday, February 06, 2007 2:58 PM
> To: Maven Users List
> Subject: Re: dependencies are bloated in M2
>
> Tandon, Pankaj wrote:
>
> >
> >
> >So the questions are:
> >1. How can we control what get's into WEB-INF/lib. We tried all the
> >scopes mentioned, but that did not help.
> >
> I believe that the scope that should work is "provided". The problem is
> that I don't know if maven is smart enough to remove a provided
> dependency from the transitive closure. I would call that a bug if it
> didn't.
>
> --
> cg
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>


-- 
I could give you my word as a Spaniard.
No good. I've known too many Spaniards.
                             -- The Princess Bride

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


RE: dependencies are bloated in M2

Posted by Bashar Abdul Jawad <bj...@vmsinfo.com>.
It will. If you don't want to include a particular dependency in your
generated package just give it the provided scope, it will be excluded even
if it was a transitive dependency of something else.

Bashar

-----Original Message-----
From: Christian Goetze [mailto:cg@miaow.com] 
Sent: Tuesday, February 06, 2007 2:58 PM
To: Maven Users List
Subject: Re: dependencies are bloated in M2

Tandon, Pankaj wrote:

> 
> 
>So the questions are:
>1. How can we control what get's into WEB-INF/lib. We tried all the
>scopes mentioned, but that did not help.
>
I believe that the scope that should work is "provided". The problem is 
that I don't know if maven is smart enough to remove a provided 
dependency from the transitive closure. I would call that a bug if it 
didn't.

--
cg

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: dependencies are bloated in M2

Posted by Christian Goetze <cg...@miaow.com>.
Tandon, Pankaj wrote:

> 
> 
>So the questions are:
>1. How can we control what get's into WEB-INF/lib. We tried all the
>scopes mentioned, but that did not help.
>
I believe that the scope that should work is "provided". The problem is 
that I don't know if maven is smart enough to remove a provided 
dependency from the transitive closure. I would call that a bug if it 
didn't.

--
cg

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: dependencies are bloated in M2

Posted by Carlos Sanchez <ca...@apache.org>.
mvn site
see the tree of dependencies
use exclusions in your dependencies
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

On 2/6/07, Tandon, Pankaj <Pa...@crowncastle.com> wrote:
> Hi all,
> We've been using Maven 1.1 for more that a year now and are looking to
> move to M2.
> With M1 our project.xml file had dependencies specified explicitly
> because there was no support for transitive dependencies. As a result,
> the jar files we downloaded for our webapp weighed in at about 11Meg.
> While building our M2 pom.xml file(s), we kept adding dependencies (in
> the pom.xml) till we got a clean compile. However now the size of the
> dependent artifacts has doubled to a whopping 23Meg! And they make it to
> the WEB-INF/lib increasing the size of our final artifact.
>
> So the questions are:
> 1. How can we control what get's into WEB-INF/lib. We tried all the
> scopes mentioned, but that did not help. There used to be a
> <properties><war.bundle>true</war.bundle></properties> in the dependency
> node in M1, but that is no longer available in M2. So even if I have
> more depoendencies at compile time, how can I prevent my war artifact
> from getting bloated?
>
> 2. How can we exclude second and third level dependencies. And IF we can
> do so, how do I know what the dependency graph is for some of the
> downloaded jars.
> For instance, there is a jar file (that is about 3Meg in size) called
> apacheds-core-0.9.jar. We know our app does not need this becuase if we
> delete this file, the app works just fine.
>
> 2a. How do I find out what top level dependecny that is specified in the
> pom caused a certain file to be downloaded? If we figure that out maybe
> we can use the exclude element in each dependency to NOT load this
> dependency.
> For instance, how do I find out what top level dependency in my pom
> caused this apacheds-core-0.9.jar to land up in my local repository.
> Infact, this jar does not even exist on http://repo1.maven.org/maven2/
> unless I google it out and find it is tucked away here
> http://repo1.maven.org/maven2/directory/.
>
> 3. Is there a way to go back to explicit dependencies (non-transitive)
> in the pom.xml?
>
>
> Thanks in advance,
> Pankaj
>


-- 
I could give you my word as a Spaniard.
No good. I've known too many Spaniards.
                             -- The Princess Bride

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org