maven-m2-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Maczka Michal <>
Subject Addition to POM & New m2 subproject
Date Mon, 21 Feb 2005 13:16:11 GMT

I started to experiment with a tool which can change pom files and assure
that the same version of some dependency 
is used across the board. For that I created new project for making
different type of pom transformations.
I think that this will be also needed for release plugin. In fact I the
first transformation I want to implement is 
that one which is happening when project is released (1.1-SNAPSHOT becomes
I am just beginning and there is still long way to go but I want to ask if
everybody is agreeing to add new subproject to maven-components.

While playing with it I found some things which are missing in our APIs.
I am operating on maven projects/models using Java API. I need to write back
the changes which I made to XML file.
   Those changes should not change much XML file. There are two things
missing to make it possible:

    a) Encoding should be kept in maven model so I can pass it to model
marshaler when I will ask it to serialize POM.

    b) Number of spaces which is used to indent XML files should be
configurable and not hardcoded to 2 (this is really less important)

As the off topic comment I can add that some things are looking harder then
I expected. For example I am not sure
how to implement "release transformation"  while version is inherited from
the parent project or parent project
is in the snapshot state. This basically requires some agreed practices how
pom should be modify during the release process.
Note that latest additions to m2 (e.g shared place where dependecy version
is defined) are not making it simpler.

Other additions to POM which I would like to see:

1) JDK used and required for given project.  For example artifact which
claim that they need Java 5 should not be usable by the project 
   targeting to java 1.3 or 1.4. With transitive dependencies in place
minimal required JDK be detected. 
   The settings which JDK is used can be also shared by multiple plugins
(e.g. javac, javadoc).

2) I would like to add annotations to particular dependencies which can be
displayed by GUI tools before dependecy version is flipped
    (so for example user can decide not to change that version) 
    I proposing to add something like  <comment> tag to Dependency. I think
that those comments are also important for documentation


View raw message