General comment:

The definition that I had in my head was that parameters that were
common to all plugins/projects were defined in the POM (project.xml) and
parameters that belonged to specific plugins were put in properties in
that plugin. Some would argue that what is in the POM is structural to
all projects. 

However, in practice none of these definitions are really applied. Also,
the fact that we have a mix of XML definition + properties is not very
consistent or convincing. In several other emails in the past I have
proposed to put *all* properties in the POM, by having an extension
mechanism that plugins would use but this has never been quite fully
agreed.

See below for specific comments...


> -----Original Message-----
> From: Michal Maczka [mailto:[EMAIL PROTECTED]
> Sent: 12 November 2003 13:05
> To: Maven Developers List
> Subject: RE: [Proposal] Project deliverables definition in POM
> 
> 
> 
> > -----Original Message-----
> > From: Vincent Massol [mailto:[EMAIL PROTECTED]
> > Sent: Wednesday, November 12, 2003 12:28 PM
> > To: 'Maven Developers List'
> > Subject: RE: [Proposal] Project deliverables definition in POM
> >
> >
> > I would be -1 to change the standard naming of
> > <name>-<version>.<extension>.
> >
> 
> The problem is that there is no standard naming convention yet which
deals
> with artifacts like:
> 
> > > <artifactId>-<version>.jar
> > > <artifactId>-src-<version>.zip
> > > <artifactId>-javadoc-<version>.zip
> 
> 
> The standard convention is that every artifacts is describable by
POM's
> dependency element.
> It means that we have four attributes to our disposition {groupId,
> artifactId, version, type}
> and artifact location in the repository  (layout)  is a simple
function of
> those four attributes (with exception to artifacts of type "ejb")

and plugins, and ear (not sure for this one, would need to check).

> 
> This is purely technical limitation of our implementation.
> 
> For me the most natural way will be to have possibility to assign a
> function
> which computes the layout per each artifact type separately.
> 
> so you can e.g. specify that  layout of "javadoc"
> is=${groupId}//javadocs/${artifactId}-javadoc-${version}.jar

yep, that would be nice.

> 
> 
> 
> > Could you explain why you think it doesn't belong to the POM?
> >
> > If it's not put in the POM (i.e. if we use properties), who will be
the
> > owner of them? driver.properties (i.e the core)? Or some other
plugins
> > (a deliverable plugin, the release plugin, etc)?
> >
> 
> In other thread I also asked about this (Re: cvs commit:
> maven-plugins/multichanges/src/plugin-resources releases.jsl):
> "The fundamental question is: shall we use properties which belong
> to no plugin and what kind of problems they can cause?"
> 
> 
> POM can be also seen as conglomerate of project.xml + and properties
> files.
> As we have methods like project.getProperties()
> 
> So it's like we have first class (standardized) and second class
> properties
> (not standardized).

I kinda agree with this. 

> In fact ownership of properties is needed purely for setting default
> values.

It's also important when you separate plugins (which we are doing). So
you cannot assume all plugins will be loaded in a given maven
installation. Hence the reason there needs to be "core" properties/POM
(and for me, everything core should go in project.xml - the only problem
is deciding what is core...).

> 
> At the moment I don't have a good answer to the question "who will be
the
> owner of them?"
> I think that probably plugins should.

I would view deliverables as core information and hence put it in the
POM/core driver properties.

Don't you think defining a project's deliverables belong to the
"standardized" property set? Isn't that a major structural information
for a project?

A project requires several information:
1- what dependencies it has on others
2- what it generates
3- how to generate the distributables

Number 2 is what we are discussing. Actually if you look at Gump's
descriptors you'll find they have this information as it is required is
you start managing several projects: the output from one project is the
input from another project. It's also useful to verify if a full project
build has been successful (i.e. if the distributables have all been
generated).

Thanks
-Vincent


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

Reply via email to