Personally, I was going to suggest going the other direction and completely get 
rid of the "parent" pom and move everything into the top level pom.   We 
already have a non-standard maven layout due to the parent pom which can be 
confusing for people (and tools).   I'd much rather try and find a way to go 
back to a more standard layout than introduce yet another layer in there to 
make it even more non-standard.

That's my opinion.

Dan



On Aug 18, 2013, at 8:35 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:

> Hi
> 
> Yeah Babak's idea sounds good. Having that 2-level of parents.
> 
> On Sun, Aug 18, 2013 at 1:55 PM, Babak Vahdat
> <babak.vah...@swissonline.ch> wrote:
>> I just tried out a different approach which:
>> 
>> - doesn't require any Maven plugin usage.
>> - doesn't require to convert the Maven properties from the XML format to the
>> Java properties file format etc.
>> - is really simple.
>> 
>> So the idea is to simply bump one more level of parent-child dependency into
>> our POM hierarchy (org.apache.camel:camel-dependencies:2.12-SNAPSHOT) which
>> contains all the Maven properties of our 3rd party dependencies. And this is
>> the diff for it  dependencies.diff
>> <http://camel.465427.n5.nabble.com/file/n5737472/dependencies.diff>  .
>> 
>> Then for the release notes of the upcomming 2.12.0 release we could just add
>> the following link about our 3rd party dependencies, of course right now
>> this resource doesn't exist on the central repo :-)
>> http://search.maven.org/remotecontent?filepath=org/apache/camel/camel-dependencies/2.12.0/camel-dependencies-2.12.0.pom
>> 
>> 
>> For example in case of our Camel Parent POM of the 2.11.1 release the link
>> is:
>> http://search.maven.org/remotecontent?filepath=org/apache/camel/camel-parent/2.11.1/camel-parent-2.11.1.pom
>> 
>> Babak
>> 
>> 
>> R. Sirchia wrote
>>> Hi,
>>> 
>>> Why don't you do it the other way around?
>>> 
>>> I understand from Claus that his desire is not so much to manage the
>>> dependencies and their versions in a different file, but just to provide a
>>> file where the version properties can be easily read from and diffed
>>> between releases.
>>> 
>>> In that case, you could simply leave everything as it is and use the
>>> properties maven plugin to write the existing properties to a properties
>>> file:
>>> http://mojo.codehaus.org/properties-maven-plugin/write-project-properties-mojo.html
>>> 
>>> Optionally, the end result can be filtered using for example a
>>> maven-antrun-plugin goal to leave out any non-version properties, which
>>> should be easy as the version definitions (can easilly be made to) follow
>>> a
>>> certain naming convention.
>>> 
>>> The end result (a clean *.properties file) can then be attached using the
>>> build-helper plugin. It is then available in Maven Central to be
>>> referenced
>>> from the release notes, diffed or imported by any user, etc.
>>> 
>>> Riccardo
>>> 
>>> 
>>> 
>>> On Sat, Aug 17, 2013 at 10:23 PM, Jan Matèrne (jhm) &lt;
>> 
>>> apache@
>> 
>>> &gt;wrote:
>>> 
>>>> I just played with that maven plugin.
>>>> The problem is that it loads the properties after the validation phase.
>>>> 
>>>> That wont work:
>>>> 
>>>> 
>> 
>>>> 
>>> <project>
>>>> 
>>> <modelVersion>
>>> 4.0.0
>>> </modelVersion>
>>>> 
>>>> 
>>> <groupId>
>>> just-test
>>> </groupId>
>>>> 
>>> <artifactId>
>>> version-test
>>> </artifactId>
>>>> 
>>> <version>
>>> 1.0
>>> </version>
>>>> 
>>>> 
>>> <build>
>>>> 
>>> <plugins>
>>>> 
>>> <plugin>
>>>> 
>>> <groupId>
>>> org.codehaus.mojo
>>> </groupId>
>>>> 
>>> <artifactId>
>>> properties-maven-plugin
>>> </artifactId>
>>>> 
>>> <version>
>>> 1.0-alpha-2
>>> </version>
>>>> 
>>> <executions>
>>>> 
>>> <execution>
>>>> 
>>> <phase>
>>> initialize
>>> </phase>
>>>> 
>>> <goals>
>>>> 
>>> <goal>
>>> read-project-properties
>>> </goal>
>>>> 
>>> </goals>
>>>> 
>>> <configuration>
>>>> 
>>> <files>
>>>> 
>>> <file>
>>> versions.properties
>>> </file>
>>>> 
>>> </files>
>>>> 
>>> </configuration>
>>>> 
>>> </execution>
>>>> 
>>> </executions>
>>>> 
>>> </plugin>
>>>> 
>>> </plugins>
>>>> 
>>> </build>
>>>> 
>>>> 
>>> <dependencies>
>>>> 
>>> <dependency>
>>>> 
>>> <groupId>
>>> junit
>>> </groupId>
>>>> 
>>> <artifactId>
>>> junit
>>> </artifactId>
>>>> 
>>> <version>
>>> ${junit}
>>> </version>
>>>> 
>>> </dependency>
>>>> 
>>> </dependencies>
>>>> 
>>> </project>
>>>> 
>>>> 
>>>> I also tried putting a
>>>> 
>>> <properties>
>>>> 
>>> <junit>
>>> 1
>>> </junit>
>>>> 
>>> </properties>
>>>> as placeholder for the validation doesnt work.
>>>> The property is not changed to the stored junit=4.9 in my file.
>>>> 
>>>> 
>>>> Current ideas:
>>>> - building our own mvn plugin (enhancing that plugin) for loading the
>>>> props
>>>> and overwrite existing properties
>>>> - generate a valid pom from the version-list
>>>> 
>>>> 
>>>> Jan
>>>> 
>>>> 
>>>>> -----Ursprüngliche Nachricht-----
>>>>> Von: Babak Vahdat [mailto:
>> 
>>> babak.vahdat@
>> 
>>> ]
>>>>> Gesendet: Samstag, 17. August 2013 21:48
>>>>> An:
>> 
>>> dev@.apache
>> 
>>>>> Betreff: Re: [IDEA] - Having a parent maven pom.xml for only the
>>>>> dependency versions
>>>>> 
>>>>> Hi
>>>>> 
>>>>> what I'm aware of for this purpose is the following plugin:
>>>>> 
>>>>> http://mojo.codehaus.org/properties-maven-plugin/usage.html
>>>>> 
>>>>> However it's not maintained anymore since 2009!
>>>>> 
>>>>> The other option would be to use the Kuali's plugin but I'm not sure
>>>>> about it's licence (it's already available in central repo):
>>>>> 
>>>>> http://site.kuali.org/maven/plugins/properties-maven-plugin/1.1.9/read-
>>>>> project-properties-mojo.html
>>>>> 
>>>>> No matter which one we would want to make use of, the tough part of
>>>>> this would be to convert the lines like:
>>>>> 
>>>>> 
>>> <ahc-version>
>>> 1.7.19
>>> </ahc-version>
>>>>> 
>>>>> into:
>>>>> 
>>>>> ahc-version=1.7.19
>>>>> 
>>>>> But it should be possible to automate this conversion with couple of
>>>>> lines of code, or maybe even a new Camel date format for this purpose
>>>>> :-)
>>>>> 
>>>>> Babak
>>>>> 
>>>>> 
>>>>> Claus Ibsen-2 wrote
>>>>>> Hi
>>>>>> 
>>>>>> Today we have the parent/pom.xml file which has both all the versions
>>>>>> of the 3rd party JARs we have as dependencies. And also a list of all
>>>>>> the camel components and some other stuff.
>>>>>> 
>>>>>> I wonder if we could have all the dependency versions in a single
>>>>>> file, without all the other stuff.
>>>>>> 
>>>>>> This would make it easier for ppl to see what are the version changes
>>>>>> between any two Camel versions, but just diff the 2 files?
>>>>>> 
>>>>>> And also we could just have such a link in the release notes so we
>>>>>> dont have to manually keep all the versions upgrades in the release
>>>>>> notes up to date as well.
>>>>>> 
>>>>>> --
>>>>>> Claus Ibsen
>>>>>> -----------------
>>>>>> Red Hat, Inc.
>>>>>> Email:
>>>>> 
>>>>>> cibsen@
>>>>> 
>>>>>> Twitter: davsclaus
>>>>>> Blog: http://davsclaus.com
>>>>>> Author of Camel in Action: http://www.manning.com/ibsen
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> View this message in context: http://camel.465427.n5.nabble.com/IDEA-
>>>>> Having-a-parent-maven-pom-xml-for-only-the-dependency-versions-
>>>>> tp5737322p5737460.html
>>>>> Sent from the Camel Development mailing list archive at Nabble.com.
>>>> 
>>>> 
>> 
>> 
>> 
>> 
>> 
>> --
>> View this message in context: 
>> http://camel.465427.n5.nabble.com/IDEA-Having-a-parent-maven-pom-xml-for-only-the-dependency-versions-tp5737322p5737472.html
>> Sent from the Camel Development mailing list archive at Nabble.com.
> 
> 
> 
> -- 
> Claus Ibsen
> -----------------
> Red Hat, Inc.
> Email: cib...@redhat.com
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen

-- 
Daniel Kulp
dk...@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com

Reply via email to