Maven SCM

Incorrect SCM URL constructed when using parent POM that is not in the parent directory

Details

  • Type: Bug Bug
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: None
  • Fix Version/s: None
  • Component/s: maven-scm-site
  • Labels:
    None
  • Environment:
  • Complexity:
    Intermediate
  • Number of attachments :
    0

Description

In our parent pom we have this:

  <properties>
    <scm.module>master-pom</scm.module>
  </properties>
  <scm>
    <connection>scm:cvs:ext:build@server:/srv/cvs/:${scm.module}</connection>
    <developerConnection>scm:cvs:ext:build@server:/srv/cvs/:${scm.module}</developerConnection>
    <url>http://server/fe/browse/UK-CVS-Rsync/${scm.module}</url>
  </scm>

Our child pom (not in the same directory), has this:

  <artifactId>dd-util</artifactId>
  <properties>
    <scm.module>util</scm.module>
  </properties>

Of course, the child pom is overriding the property. Well, it sort of works.
When building the site of the parent pom, we get:

http://server/fe/browse/UK-CVS-Rsync/master-pom

... which is correct. But when building the site for the child pom, we get:

http://server/fe/browse/UK-CVS-Rsync/util/dd-util

I'm quite confused as to why it whould be appending the artifactId of the child project. The property is getting replaced ok, but the the extra bit? This has got to be a bug.

I'm not releasing the project, just building the site.

Any ideas? If this is against the wrong project, can it be moved?

Activity

Hide
Joćo Rafael Nicola added a comment -

I am also experiencing a similar effect.

My parent pom has, for example:

<developerConnection>scm:svn:https://svnserver/myprojects/${project.artifactId}/trunk</developerConnection>

When running "mvn help:effective-pom" on the child, whose artifactId is, for example, child-project, I get:

<developerConnection>scm:svn:https://svnserver/myprojects/child-project/trunk/child-project</developerConnection>

instead of the expected:

<developerConnection>scm:svn:https://svnserver/myprojects/child-project/trunk</developerConnection>

For some reason, the developerConnection property gets appended with the artifactId when inherited. Although this makes sense when dealing with a multi-module project which is versioned in a single project structure in subversion, it does not when the parent pom is used just to standardize some properties on the pom, which each child project independently versioned.

I think there should be some way to disable this behaviour.

Joćo Nicola

Show
Joćo Rafael Nicola added a comment - I am also experiencing a similar effect. My parent pom has, for example: <developerConnection>scm:svn:https://svnserver/myprojects/${project.artifactId}/trunk</developerConnection> When running "mvn help:effective-pom" on the child, whose artifactId is, for example, child-project, I get: <developerConnection>scm:svn:https://svnserver/myprojects/child-project/trunk/child-project</developerConnection> instead of the expected: <developerConnection>scm:svn:https://svnserver/myprojects/child-project/trunk</developerConnection> For some reason, the developerConnection property gets appended with the artifactId when inherited. Although this makes sense when dealing with a multi-module project which is versioned in a single project structure in subversion, it does not when the parent pom is used just to standardize some properties on the pom, which each child project independently versioned. I think there should be some way to disable this behaviour. Joćo Nicola
Hide
Tomas Varaneckas added a comment -

An ugly workaround for that is to have links ending with # or ?foo=, so finally they work even with /artifact-id in the end. I.e.:

<scm>
<connection>scm:git:git://git.xxx.com/${xxx.project.path}.git?proj=</connection>
<developerConnection>scm:git:git://gitosis@git.xxx.com/${xxx.project.path}.git?proj=</developerConnection>
<url>http://git.xxx.com/?p=${xxx.project.path}.git;a=summary#</url>
</scm>

Show
Tomas Varaneckas added a comment - An ugly workaround for that is to have links ending with # or ?foo=, so finally they work even with /artifact-id in the end. I.e.: <scm> <connection>scm:git:git://git.xxx.com/${xxx.project.path}.git?proj=</connection> <developerConnection>scm:git:git://gitosis@git.xxx.com/${xxx.project.path}.git?proj=</developerConnection> <url>http://git.xxx.com/?p=${xxx.project.path}.git;a=summary#</url> </scm>
Hide
Youri Bonnaffé added a comment -

I experienced the same behavior as Joao.

Show
Youri Bonnaffé added a comment - I experienced the same behavior as Joao.

People

Vote (8)
Watch (4)

Dates

  • Created:
    Updated: