/>>The maven inheritance mechanism will not take the parent pom into consideration /The main idea was to change the hard-coded rule "always append artifactId to implicit urls" to something configurable and located in the super pom. Only if somebody wanted to change the 'rule' that could be
achieved with a minor effort of two intermediary poms.

Yes, this will require a change of the inheritance mechanism. I'm not familiar with Maven internals (at least not yet). However, I presumed the inheritance logic was located to a single place and therefore could be changed according to my suggestion with a minor effort. Please, forgive me if my suggestion
turns out to be major implementation headache.
Best regards,
   /jens

VUB Stefan Seidel skrev:
Jens Riboe wrote:
As I understand it; the current rule implements implicit URLs as
${parent.url}/${project.artifactId}

For example:
<scm>
<connection>${parentPOM.scm.connection}/${project.artifactId}</connection>
 ...
/scm>
Where parentPOM is a made-up symbol denoting an upward search for the pom property that follows (scm.connection).

So, how about the following suggestion:
The Super POM contains this kind of definition for all URLs where this rule applies today. When the effective POM is computed for a sub-project it uses the "closest" url definition that contains the symbol parentPOM. If none is found expect the def in super pom, this one is used and the rule applies as it always has.

This will break existing builds.

The maven inheritance mechanism will not take the parent pom into consideration if you say something like
> <connection>scm:cvs:[EMAIL PROTECTED]:/yyy</connection>
because this is considered as a fixed string and thus overrides the value from the parent. Maven only inherits values from parent POMs when the tags are non-existing in the child pom or in special cases likes plugin configurations from pluginManagement or plugin executions with the same id.

Stefan


Reply via email to