Niclas Hedhman <[EMAIL PROTECTED]> wrote on 09/30/2006 05:15:34 AM:

> On Saturday 30 September 2006 08:27, Jeff McAffer wrote:
> > - Built bundles have a manifest.mf that fully specifies what the 
bundle
> > can supply and what it needs.  If Maven could read the manifest 
directly,
> > you would not need a POM for the bundle when buliding it.  This in 
turn
> > would allow people to build against products and other delivered 
software
> > which does not live in an accessible maven repo.
> 
> Huh? Do you think that jakarta-commons people would want to bother about 

> package dependencies, instead of their current "jar dependencies" 
approach.
> I don't. It doesn't bring them anything useful at all. At the most, we 
could 

I was being very careful to enable people to do as they choose.  No where 
do I say that people must do anything.  If jakarta-commons likes jar 
dependencies, great!  Quite a number of people in this list are fond of 
package dependencies and currently AFIAK, Maven does not support them.  I 
would be very happy to be wrong.

> Requiring that projects has to maintain the Manifest down to the last 
dot, 
> ain't very likely to happen.

Again, there was no must or require in anything I wrote.  Some people want 
to do that.  Maven does not enable that workflow thus excludes those 
people.

> > - At development time, some people prefer to specify their 
dependencies in
> > manifests rather than poms.  Having Maven read dependency info from 
the
> > manifest would eliminate the need to duplicate that information.
> 
> "Some people" ;o)
> Have heard that argument for long now, but it seems to me being more a 
view 
> enforced onto "some" by Eclipse ways of doing things. If Eclipse had 
chosen 
> another approach X, then the sentence above would have been "some people 

> prefer X".

Of course!  And if Maven had choosen another approach...  This isn't a 
mystery or secret plot.  There are several communities doing things in 
different ways.  Each way has its benefits and drawbacks.  I'm observing 
that Maven would get higher acceptance in some communities (e.g., Eclipse) 
if it was better able to support the workflows those communities have 
developed.  Communities, whether it be Jakarta or Eclipse or Felix or ... 
are slow to change once they have figured out what works for them.

> The manifest is not a strong candidate for describing dependencies, and 
that 

Err, the manifest is all about describing dependencies and has a very rich 
vocabulary for doing so.

> cited reasons of not using it;
> 
>   - Doesn't haven any kind of "scope", such as Test, Develop and 
Production.

Some communities do this a different way.  This information clearly does 
not belong in the manifest either way. 

>   - Makes it harder to generate several outputs from the same codebase
>     (although Maven requires a similar limitation).

Actually we have many projects that compile multiple JARs while 
constructing one bundle.  It is true however that the Eclipse usecases do 
not drive a requirement to build one project and produce multiple bundles. 
 In any event, this information also does not belong in the manifest. 
That's why Eclipse has a build.properties file. Its a sucky format etc etc 
but no one ever proposed putting that info in the manifest.

>   - Doesn't allow additional build-time meta-info.

Yup.  That doesn't belong in the manifest either.  See the 
build.properties file. 

> Manifest specifies "Bundle-ClassPath: abc.jar", but what jar is that and 
how 
> is that obtained?? For the 'click-myself-to-death' systems it is up to 
the 
> user to manually 'fix' that, typically by committing jar files into 
CVS/SVN 
> (a discouraged practice at ASF), and YET Eclipse store information about 
that 
> in its own files, which I think proves the suitability of the manifest 
as a 
> build co-ordination tool is over-rated, and time for the Eclipse folks 
to 
> admit it ;o)

We do not commit JARs into CVS!  Not sure where you got that idea but it 
is patently incorrect.  In general you don't even need the JARs until you 
actaully want to ship.  90% of the time Eclipse bundle developers are 
running directly from the project's binary output folders in the workspace 
(and that is not even committed).  The build-time information (eg., 
build.properties) describes the mapping between the development time and 
deployment time shape of things so when you export a bundle, you get the 
JARs described. 

Look Jason asked for opinions on what Maven could do to improve the 
building of bundles.  I gave my opinion and tried to represent it only as 
that.  Clearly you work in a completely different way.  I can't fathom not 
using an IDE, you can't fathom using one.  That doesn't make one of us 
right or wrong.  Frankly it is hard to understand what all the resistance 
is about.  All that is being suggested is that at the point Maven goes to 
read the POM, it look for a manifest as well.  That way people can put the 
dependency etc info wherever they are happiest.

It would be great for Maven be more useful in a broader set of 
communities.  To do that it either needs to more/less seamlessly support 
current practice or be remarkably better in ways that the end 
users/developers involved want thus motivating them to change.  That has 
nothing to do with particular technologies.  It is just community 
dynamics.

Jeff

Reply via email to