I've no objection to reviewing provided in 2.1 - please make sure it is
in JIRA and/or the wiki roadmap. I'm not exactly sure if I have reasons
not to make it transitive (I don't think it will break things), it just
doesn't sit well with the view of what provided means - the dependency
shouldn't know or declare anything about the dependees runtime
environment - its up to the project to do that itself.

In fact, I'd very much like to see it superceded by an offshoot of
specification dependencies, as you start to be able to build your
runtime classpath up separately from the compile time classpath, and
specify what specifications an environment provides. I think the current
need to make provides transitive is just a symptom of this being missing.

I don't think we'll see the split you mention about transitivity and
test being different to the others, but it can certainly be a point for
discussion. As for build dependencies, they belong in the build section
under extensions and plugin dependencies as they are now and I'd be
against changing them.

Sorry for the late response, just catching up on some flagged mail.

Would you mind capturing the details in the wiki - since we have
discussed it before it would be good to have a document to use as a
reference point.

Cheers,
Brett

Kenney Westerhof wrote:
> On Mon, 13 Mar 2006, Stephen Duncan wrote:
> 
> (I'm cc-ing the dev list, maybe continue there?)
> 
>> It's Maven's decision: http://jira.codehaus.org/browse/MNG-1978
>>
>> Brett still hasn't been convinced that provided status should be
>> transitive.  I don't have any particular use case to argue one way or
>> another...
> 
> I do. The compiler requires it.
> 
> Maybe the semantics of 'provided' need to be changed; it should
> indicate 'provided in the RUNTIME environment'. Maven itself is NOT the
> runtime environment (except when running plugins perhaps).
> Dependencies _could_ end up in the runtime environment, for instance,
> dependencies of plugins. In that case, maven _is_ the runtime environment,
> and it can simply discard all provided dependencie when building a runtime
> classpath for the plugin.
> 
> Provided deps, like j2ee api's, when not transitive,
> cause compilation errors - Sun's Javac even reports an 'Internal Compiler
> Error' in this case. It's because the binaries, that depend on that
> 'provided' dependency, either use the dep in their api's, in annotations,
> or extend from it, or use it in any other way.
> 
> The compiler must be able to resolve those classes.
> 
> Provided scope simply tells maven that the runtime environment,
> whatever that may be, already has that jar in the classpath. So
> when maven has to PACKAGE something, like a war or ear, it shouldn't
> include that dependency. But it is still very much needed for compilation
> (build-time).
> 
> I've argued this case several times before in the past, and I certainly
> hope we can convince the rest of the team anytime soon.. :)
> 
> Splitting up the scope system into 2 scopes: 'compile' and
> 'runtime', and a set of flags:
> - transitive
> - test
> 
> will allow people to decide wheter a dependency should be transitive or not.
> This might cover all the possible use-cases.
> 
> (perhaps even add a 'build' scope which maps nicely to the current
> 'extensions' scheme so we can keep dependencies in one neat list.).
> 
> 
> -- Kenney
> 
>> -Stephen
>>
>> On 3/13/06, Mario Ivankovits <[EMAIL PROTECTED]> wrote:
>>> Hi!
>>>
>>> I started using maven 2 to build our project and maybe hit a bug now.
>>>
>>> The project layout is:
>>>
>>> project
>>> +-project-app
>>> +-project-web
>>>
>>> where "project-web" depends on "project-app".
>>>
>>> One of the dependency is jfreechart which itself depends on e.g. "gnujaxp".
>>> Now I dont want to package the gnujaxp and so I though I override its
>>> scope to "provided" in "project-app".
>>> But "project-web" still package it. Other dependencies defined as
>>> "provided" work, it looks like its only a problem if a dependency
>>> declares it.
>>>
>>> I worked around this problem by defining the dependency "gnujaxp" in
>>> "project-web" too as "provided" and not its not packaged any more.
>>> I think this should not be necessary, no?
>>>
>>> Is it my or mavens fault?
>>>
>>> Thanks!
>>> Ciao,
>>> Mario
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>
>> --
>> Stephen Duncan Jr
>> www.stephenduncanjr.com
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
> 
> --
> Kenney Westerhof
> http://www.neonics.com
> GPG public key: http://www.gods.nl/~forge/kenneyw.key
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to