Dependency transitivity - compilation vs. packaging

2011-06-22 Thread Stanimir Stamenkov
As far as I've found, currently it is not possible to specify a 
dependency scope which will cause a dependency normally packaged 
along with its compile scope dependencies in a final product like 
EAR, but will not resolve its compile scope dependencies when 
compiling the project which includes it as dependency.  That's it, I 
would like to use the APIs provided by a given dependency, but I 
don't want to allow compiling against APIs provided by its 
implementation dependencies (unless given as dependencies 
explicitly), and then I want those implementation dependencies 
packaged automatically in a final product.


I hope I've explained it good enough.  Is what I'm after currently 
possible?  If not, has this been thought about before?


--
Stanimir

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



Re: Dependency transitivity - compilation vs. packaging

2011-06-22 Thread Manfred Moser
Use a dependency to the api with provided scope on jar or whatever code
projects you have.

And then use the implementation of the api as dependency on the ear.

manfred

 As far as I've found, currently it is not possible to specify a
 dependency scope which will cause a dependency normally packaged
 along with its compile scope dependencies in a final product like
 EAR, but will not resolve its compile scope dependencies when
 compiling the project which includes it as dependency.  That's it, I
 would like to use the APIs provided by a given dependency, but I
 don't want to allow compiling against APIs provided by its
 implementation dependencies (unless given as dependencies
 explicitly), and then I want those implementation dependencies
 packaged automatically in a final product.

 I hope I've explained it good enough.  Is what I'm after currently
 possible?  If not, has this been thought about before?

 --
 Stanimir

 -
 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



Re: Dependency transitivity - compilation vs. packaging

2011-06-22 Thread Stanimir Stamenkov

Wed, 22 Jun 2011 15:07:02 -0700, /Manfred Moser/:


Use a dependency to the api with provided scope on jar or whatever code
projects you have.

And then use the implementation of the api as dependency on the ear.


Yeah, that's exactly what I'm currently doing, but it easily becomes 
a nightmare with a larger project with large amount of modules, with 
even larger amount of dependencies - tracking and declaring 
explicitly the dependencies of these dependencies for packaging.  I 
want to avoid specifying implementation detail dependencies for 
packaging (which may change in a next version of the main 
dependency).  As far as I'm aware Maven encourages the practice of 
don't repeat yourself and the given solution obviously involves a 
lot of repetitions (in terms of dependency declarations).


Say I have an EJB module which depends on the X dependency which 
itself depends on DOM4J for certain parts of its implementation.  I 
don't want to allow my EJB module using DOM4J APIs, but I want this 
dependency automatically packaged in an EAR which packages my EJB 
module.  I think this is quite important part of the dependency 
transitivity for it to be useful.


--
Stanimir

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