Hello, the website says that "project.xml form, is now processed as a Jelly script " (http://maven.apache.org/reference/user-guide.html#POM%20Interpolation ) but it does not appear to be having like it is a jelly script at all.

Is the user guide not valid? Is there a special property to enable this? I have looked over the source and it does not appear that any jelly fluff is done to the project.xml file.

IMO I think that it would be very beneficial if it was a jelly script so that Maven in general is more flexible. I understand not wanting to put much logic into the project.xml, but it would make management of large projects much easier.

Specifically I was looking for a way to define common dependencies for a large project (Apache Geronimo) so I could better manage version numbers of the dependencies. I did not wish to put all of the depends into a parent project as that would force each child project to have additional dependencies on its classpath which might not be a good thing, nor do I want each and every module to try to download SNAPSHOTS, especially if they do not even need that depend.

So I thought about using properties like 'dependency.commons-logger.version=1.0.3' and then specify the property as the content for <version/>, which works fine if the property is defined in the child modules project.properties, or if the property is in the parent and the child is always invoked through the reactor. This is not the case with Geronimo, so this method fails.

James and I were chatting about this a tad... I was under the impression that I could use jelly in project.xml (drawn conclusion from web page and some bad tests I made). He suggested using <x:parse xml="../../dependencies.xml"/> and then selecting out dependencies by name and then copying them into the project.xml. I think this would be very useful and shows where project.xml as a jelly script would be desirable.

I think this is a good idea, but wanted to hear what you guys have to say.

Also I was talking to James about the problem of versioning dependencies in general and how it would make sense if Maven supported more symbolic names (similar to SNAPSHOT) but which could point to the latest stable release. It probably makes sense to provide some sort of version alias mechanism, as it becomes problematic to effectively maintain version numbers in a large project. Take Maven for example, there are a few plugins which use different yet compatible versions of dependencies, which only results in additional overhead. If all plugins are compatible with a specific version, then it would make sense for them to all use that version.

Anyways I have been up for way too long, it was light when I woke up and it is light again, so I am gonna crash now.

Cheers,

--jason

Reply via email to