Hi David and others!

First of all this, what Paulo has described is just experimental feature of
maven-new and there is no way to use it for the moment. I am not even sure
that if those features will stay when maven-new will be released.


I want briefly explain what I am trying to achieve so you can provide your
valuable feedback:


1. I want to support mapping between dependencies in POM and multiple
classpaths.

I see a need of having at least 3 classpaths: compile, test, runtime.
For the moment I am using 4th classpath: "global" which is used
in case dependency should be visible in all 3 other classpaths
and is also useful for backward compatibility.


I think that the right way of declaring such mapping is by 
introducing new tag inside <dependency>: <kind>

And use it like follows:

<kind>global</kind>(default value which is also used when tag was skipped)
<kind>test</kind>
<kind>runtime</kind>
<kind>compile</kind>

There are few open points there
(e.g. can we have:  <kind>tests, runtime</kind> or <kind>cactus</kind> etc.)


For the moment I would like to discuss just the idea as w whole not those
technical details. Once we will agree that such tag is needed in POM we can
discuss lower level details



2. I want to prepare a field for <<transitive>> dependencies. I think that
is should be controllable if given dependency is transitive or not.

So I am proposing to use:

<transitive>true</transitive> 
  or 
<transitive>false</transitive> (default, can be skipped)


3. Other proposition is to change a bit a semantic of <properties> tag
and instead of using:
 

<properties>
   <war.bundle.jar>true</war.bundle.jar>
   <ear.bundle.jar>true</ear.bundle.jar>
</properties>


To make it:

<properties>
   war.bundle.jar=true
   ear.bundle.jar=true
</properties>


There are at least two arguments for such change:
a) It is very easy to implement (It's already done in maven-new :) )
b) It is easier to use for end user (it's shorter)



Example of declaration of dependency using all new tags:

<dependency>
   <artifactId>foo<artifactId>
   <groupId>baa</groupId>
   <version>1.0.0</version>
   <type>jar</type>
   <kind>test</kind>
   <transitive>true</transitve>
   <properties>
      eclipse.dependecy=true
   </properties>
</dependency>


Each of those changes is separated idea and can be voted/criticized
separately.
I am waiting for your feedback!  Please let me know what you think about
them!

a) <kind> tag
b) <transitive> tag
c) <properties> tag


Michal


-----Original Message-----
From: David Zeleznik [mailto:[EMAIL PROTECTED] 
Sent: Friday, June 06, 2003 3:35 AM
To: Maven Users List
Subject: RE: Refining dependencies for test and non-test

Hi Paulo,

> Michal seems to be currently working in some tags for
> the dependecies, where you can say what <kind> of dependecy
> you have.
>
> This way you can say to maven that servlet.jar is a compile
> dependecy, and not a runtime one, so it will not be copied
> to a war, for example. And you can define your own <kind>s.
>
> This way you will be able to handle your tests classpath.

Thanks for the info, that sounds like it would help us out greatly. We are
still using beta8 because we ran into so many bugs with beta9. Do you know
if this new capability is in the current CVS head? If so, where would I look
for a a good example of its usage?

Thanks,

--------------------------------------
David Zeleznik
ILOG - Changing the rules of business
mailto:[EMAIL PROTECTED]
http://www.ilog.com
--------------------------------------


---------------------------------------------------------------------
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