Re: Parent POM, properties and scm problem

2007-08-07 Thread Eric Redmond
Might I suggest for the time being, to download and install the
maven-pom-plugin (
http://svn.apache.org/repos/asf/maven/sandbox/trunk/plugins/maven-pom-plugin/)
and manually manage the scm fields in the projects. I know it's a hack, but
non-standard layouts tend to produce non-standard solutions. Welcome to
convention over configuration :)

-- 
Eric Redmond
http://blog.propellors.net

On 8/6/07, Jörg Schaible [EMAIL PROTECTED] wrote:

 Oscar Picasso wrote on Wednesday, August 01, 2007 7:31 PM:

  The current Maven behaviour is fine for multimodule projects.
 
  However I am trying to write a organizational POM that all my projets
  would inherited and wanted to avoid duplication of the scm section.
 
  So in case of independent projects it does not make sense to put all
  them inside the same trunk.
 
  I guess currently I cannot avoid this duplication.

 Not really, and there's a simple reason: You cannot assume that everyone
 keeps his organizational POM in the root of all the projects. Our
 organizational POM has SCM URL entries that are used to release the
 organizational POM itself. It does not even make sense to inherit them.

 However, you may use properties to define the SCM URLs as we do:

 scm
 connectionscm|svn|${my.svn.root}${my.svn.tagBase}/trunk/connection
 developerConnectionscm|svn|${my.svn.root}${my.svn.tagBase
 }/trunk/developerConnection
 url${my.svn.view}${my.svn.tagBase}/trunk/url
 /scm

 while my.svn.root and my.svn.view are properties that are defined in
 the organizational POM and my.svn.tagBase is defined in the POM of the
 project root (in case of a multi-module project). But keep in mind, that the
 release-plugin will rewrite the URLs after the first release, so there are
 no properties in the URL anymore anyway. So the whole definition is only
 useful as template for new POMs.

 - Jörg

 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




Re: Parent POM, properties and scm problem

2007-08-06 Thread Jared Bunting
I'm also experiencing this problem.  As discussed here (under Inheritance v.
Aggregation):

http://www.propellors.net/maven/site/pom.html#POM%20Relationships

it appears to make sense in what is called the aggregation use case, but
not in the inheritance use case.  I'm wondering if there's some way to
simply disable this functionality (maybe setting a property?  don't know...)
to get these url elements to inherit as one would expect - as is.

If this functionality isn't currently available, and somebody could point me
to the appropriate code, I would be happy to try and write a patch for it...

Thanks,
Jared


Oscar Picasso
 Thu, 02 Aug 2007 06:31:58 -0700

 That's exactly what I am doing.

 And it works fine except for the problem that I mention in this thread of
 the project artifactId being added to some urls like the scmConnection.

 On 8/1/07, Bryan Loofbourrow [EMAIL PROTECTED] wrote:
 
  I'm wondering if the following would work:
 
  - Make your organizational pom project. Don't define any module entries
  in
  it.
  - Have all of your projects depend on it as a parent
  - Build and install your organizational pom to a central repository
  accessible to all of your projects.
 
  I'm thinking that you can then independently build and deploy your
  organizational pom by itself, and have your projects use it, from the
  repository, as a parent for definition purposes, though not build
  purposes.
 
  I'd be interested to know whether this works. It seems useful.
 
  -- Bryan
 
  -Original Message-
  From: Oscar Picasso [EMAIL PROTECTED]
  Sent: Wednesday, August 01, 2007 10:31 AM
  To: Maven Users List
  Subject: Re: Parent POM, properties and scm problem
 
  The current Maven behaviour is fine for multimodule projects.
 
  However I am trying to write a organizational POM that all my projets
  would
  inherited and wanted to avoid duplication of the scm section.
 
  So in case of independent projects it does not make sense to put all them
  inside the same trunk.
 
  I guess currently I cannot avoid this duplication.
 
  On 7/31/07, Eric Redmond [EMAIL PROTECTED] wrote:
  
   Maven does this so that child module's scm can be defined once in the
   parent.
  
   scm
 connectionscm:svn:https://url/project/trunk
   /scm
  
   modules
 moduleChild
  
   Then the Child module's scm url is automatically set as:
  
   scm
 connectionscm:svn:https://url/project/trunk/Child
   /scm
  
   Which is the convention for a multi-module project.
  
   If your Child project has to be seperate, with it's own trunk, etc. I
   would suggest (if svn) using svn:externals to access the child under the
   parent project. Since it ownly appends the name on a multi-module
  project,
   I'm trying to figure out how you locally check out your project...
  perhaps
   create a trunks-style setup in your version control would be best?
  
   Eric
  
   On 7/30/07, Oscar Picasso [EMAIL PROTECTED] wrote:
   
I have also noticed the same behavior with the project url, the sit
  url
and
the scm url even if in the effective the corresponding properties are
correct (without the artifactId appended).
   
On 7/30/07, Oscar Picasso [EMAIL PROTECTED] wrote:

 Hi,

 In the parent POM I have the following:
 [...]
   properties
 scmConnection
http://localhost/repos/repo/${groupId}/${artifactId}/trunk 
http://localhost/repos/repo/$%7BgroupId%7D/$%7BartifactId%7D/trunk
 http://localhost/repos/repo/$%7BgroupId%7D/$%7BartifactId%7D/trunk
 /scmConnection
   /properties


   scm
 connection${scmConnection}/connection
 developerConnection${scmConnection}/developerConnection
   /scm
 [...]

 The child POM has nothing expect mandatory elements and the
  reference
   to
 the parent POM. Both the child and the parent are snapshots. The
   parent
POM
 has been deployed to the remote repository.

 When I run mvn help:effective-pom on the child project, I get:
 [...]
   scm
 connection
http://localhost/repos/repo/com.opicasso/Child/trunk/Child
 /connection
 developerConnection
 http://localhost/repos/repo/com.opicasso/Child/trunk/Child
 /developerConnection
   /scm
 [..]

 I would have expected:
 [...]
   scm
 connectionhttp://localhost/repos/repo/com.opicasso/Child/trunk
 /connection
 developerConnection
 http://localhost/repos/repo/com.opicasso/Child/trunk
/developerConnection
   /scm
 [..]

 Why does maven happen the child artifactId to the connections? Does
maven
 merge the parent scm connections with the children ones ? But in the
current
 case the child has no scm connections defined in its pom.

 How to get rid of this extra artifactId?

 Thanks

 Oscar



   
  
  
  
   --
   Eric Redmond
   http://blog.propellors.net

RE: Parent POM, properties and scm problem

2007-08-06 Thread Jörg Schaible
Oscar Picasso wrote on Wednesday, August 01, 2007 7:31 PM:

 The current Maven behaviour is fine for multimodule projects.
 
 However I am trying to write a organizational POM that all my projets
 would inherited and wanted to avoid duplication of the scm section.
 
 So in case of independent projects it does not make sense to put all
 them inside the same trunk.
 
 I guess currently I cannot avoid this duplication.

Not really, and there's a simple reason: You cannot assume that everyone keeps 
his organizational POM in the root of all the projects. Our organizational 
POM has SCM URL entries that are used to release the organizational POM 
itself. It does not even make sense to inherit them.

However, you may use properties to define the SCM URLs as we do:

scm
connectionscm|svn|${my.svn.root}${my.svn.tagBase}/trunk/connection

developerConnectionscm|svn|${my.svn.root}${my.svn.tagBase}/trunk/developerConnection
url${my.svn.view}${my.svn.tagBase}/trunk/url
/scm

while my.svn.root and my.svn.view are properties that are defined in the 
organizational POM and my.svn.tagBase is defined in the POM of the project 
root (in case of a multi-module project). But keep in mind, that the 
release-plugin will rewrite the URLs after the first release, so there are no 
properties in the URL anymore anyway. So the whole definition is only useful as 
template for new POMs.

- Jörg

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Parent POM, properties and scm problem

2007-08-02 Thread Oscar Picasso
That's exactly what I am doing.

And it works fine except for the problem that I mention in this thread of
the project artifactId being added to some urls like the scmConnection.

On 8/1/07, Bryan Loofbourrow [EMAIL PROTECTED] wrote:

 I'm wondering if the following would work:

 - Make your organizational pom project. Don't define any module entries
 in
 it.
 - Have all of your projects depend on it as a parent
 - Build and install your organizational pom to a central repository
 accessible to all of your projects.

 I'm thinking that you can then independently build and deploy your
 organizational pom by itself, and have your projects use it, from the
 repository, as a parent for definition purposes, though not build
 purposes.

 I'd be interested to know whether this works. It seems useful.

 -- Bryan

 -Original Message-
 From: Oscar Picasso [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, August 01, 2007 10:31 AM
 To: Maven Users List
 Subject: Re: Parent POM, properties and scm problem

 The current Maven behaviour is fine for multimodule projects.

 However I am trying to write a organizational POM that all my projets
 would
 inherited and wanted to avoid duplication of the scm section.

 So in case of independent projects it does not make sense to put all them
 inside the same trunk.

 I guess currently I cannot avoid this duplication.

 On 7/31/07, Eric Redmond [EMAIL PROTECTED] wrote:
 
  Maven does this so that child module's scm can be defined once in the
  parent.
 
  scm
connectionscm:svn:https://url/project/trunk
  /scm
 
  modules
moduleChild
 
  Then the Child module's scm url is automatically set as:
 
  scm
connectionscm:svn:https://url/project/trunk/Child
  /scm
 
  Which is the convention for a multi-module project.
 
  If your Child project has to be seperate, with it's own trunk, etc. I
  would suggest (if svn) using svn:externals to access the child under the
  parent project. Since it ownly appends the name on a multi-module
 project,
  I'm trying to figure out how you locally check out your project...
 perhaps
  create a trunks-style setup in your version control would be best?
 
  Eric
 
  On 7/30/07, Oscar Picasso [EMAIL PROTECTED] wrote:
  
   I have also noticed the same behavior with the project url, the sit
 url
   and
   the scm url even if in the effective the corresponding properties are
   correct (without the artifactId appended).
  
   On 7/30/07, Oscar Picasso [EMAIL PROTECTED] wrote:
   
Hi,
   
In the parent POM I have the following:
[...]
  properties
scmConnection
   http://localhost/repos/repo/${groupId}/${artifactId}/trunk
http://localhost/repos/repo/$%7BgroupId%7D/$%7BartifactId%7D/trunk
/scmConnection
  /properties
   
   
  scm
connection${scmConnection}/connection
developerConnection${scmConnection}/developerConnection
  /scm
[...]
   
The child POM has nothing expect mandatory elements and the
 reference
  to
the parent POM. Both the child and the parent are snapshots. The
  parent
   POM
has been deployed to the remote repository.
   
When I run mvn help:effective-pom on the child project, I get:
[...]
  scm
connection
   http://localhost/repos/repo/com.opicasso/Child/trunk/Child
/connection
developerConnection
http://localhost/repos/repo/com.opicasso/Child/trunk/Child
/developerConnection
  /scm
[..]
   
I would have expected:
[...]
  scm
connectionhttp://localhost/repos/repo/com.opicasso/Child/trunk
/connection
developerConnection
http://localhost/repos/repo/com.opicasso/Child/trunk
   /developerConnection
  /scm
[..]
   
Why does maven happen the child artifactId to the connections? Does
   maven
merge the parent scm connections with the children ones ? But in the
   current
case the child has no scm connections defined in its pom.
   
How to get rid of this extra artifactId?
   
Thanks
   
Oscar
   
   
   
  
 
 
 
  --
  Eric Redmond
  http://blog.propellors.net
 


 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




Re: Parent POM, properties and scm problem

2007-08-01 Thread Oscar Picasso
The current Maven behaviour is fine for multimodule projects.

However I am trying to write a organizational POM that all my projets would
inherited and wanted to avoid duplication of the scm section.

So in case of independent projects it does not make sense to put all them
inside the same trunk.

I guess currently I cannot avoid this duplication.

On 7/31/07, Eric Redmond [EMAIL PROTECTED] wrote:

 Maven does this so that child module's scm can be defined once in the
 parent.

 scm
   connectionscm:svn:https://url/project/trunk
 /scm

 modules
   moduleChild

 Then the Child module's scm url is automatically set as:

 scm
   connectionscm:svn:https://url/project/trunk/Child
 /scm

 Which is the convention for a multi-module project.

 If your Child project has to be seperate, with it's own trunk, etc. I
 would suggest (if svn) using svn:externals to access the child under the
 parent project. Since it ownly appends the name on a multi-module project,
 I'm trying to figure out how you locally check out your project... perhaps
 create a trunks-style setup in your version control would be best?

 Eric

 On 7/30/07, Oscar Picasso [EMAIL PROTECTED] wrote:
 
  I have also noticed the same behavior with the project url, the sit url
  and
  the scm url even if in the effective the corresponding properties are
  correct (without the artifactId appended).
 
  On 7/30/07, Oscar Picasso [EMAIL PROTECTED] wrote:
  
   Hi,
  
   In the parent POM I have the following:
   [...]
 properties
   scmConnection
  http://localhost/repos/repo/${groupId}/${artifactId}/trunk
   http://localhost/repos/repo/$%7BgroupId%7D/$%7BartifactId%7D/trunk
   /scmConnection
 /properties
  
  
 scm
   connection${scmConnection}/connection
   developerConnection${scmConnection}/developerConnection
 /scm
   [...]
  
   The child POM has nothing expect mandatory elements and the reference
 to
   the parent POM. Both the child and the parent are snapshots. The
 parent
  POM
   has been deployed to the remote repository.
  
   When I run mvn help:effective-pom on the child project, I get:
   [...]
 scm
   connection
  http://localhost/repos/repo/com.opicasso/Child/trunk/Child
   /connection
   developerConnection
   http://localhost/repos/repo/com.opicasso/Child/trunk/Child
   /developerConnection
 /scm
   [..]
  
   I would have expected:
   [...]
 scm
   connectionhttp://localhost/repos/repo/com.opicasso/Child/trunk
   /connection
   developerConnection
   http://localhost/repos/repo/com.opicasso/Child/trunk
  /developerConnection
 /scm
   [..]
  
   Why does maven happen the child artifactId to the connections? Does
  maven
   merge the parent scm connections with the children ones ? But in the
  current
   case the child has no scm connections defined in its pom.
  
   How to get rid of this extra artifactId?
  
   Thanks
  
   Oscar
  
  
  
 



 --
 Eric Redmond
 http://blog.propellors.net



RE: Parent POM, properties and scm problem

2007-08-01 Thread Bryan Loofbourrow
I'm wondering if the following would work:

- Make your organizational pom project. Don't define any module entries in
it.  
- Have all of your projects depend on it as a parent
- Build and install your organizational pom to a central repository
accessible to all of your projects.

I'm thinking that you can then independently build and deploy your
organizational pom by itself, and have your projects use it, from the
repository, as a parent for definition purposes, though not build purposes.

I'd be interested to know whether this works. It seems useful.

-- Bryan

-Original Message-
From: Oscar Picasso [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, August 01, 2007 10:31 AM
To: Maven Users List
Subject: Re: Parent POM, properties and scm problem

The current Maven behaviour is fine for multimodule projects.

However I am trying to write a organizational POM that all my projets would
inherited and wanted to avoid duplication of the scm section.

So in case of independent projects it does not make sense to put all them
inside the same trunk.

I guess currently I cannot avoid this duplication.

On 7/31/07, Eric Redmond [EMAIL PROTECTED] wrote:

 Maven does this so that child module's scm can be defined once in the
 parent.

 scm
   connectionscm:svn:https://url/project/trunk
 /scm

 modules
   moduleChild

 Then the Child module's scm url is automatically set as:

 scm
   connectionscm:svn:https://url/project/trunk/Child
 /scm

 Which is the convention for a multi-module project.

 If your Child project has to be seperate, with it's own trunk, etc. I
 would suggest (if svn) using svn:externals to access the child under the
 parent project. Since it ownly appends the name on a multi-module project,
 I'm trying to figure out how you locally check out your project... perhaps
 create a trunks-style setup in your version control would be best?

 Eric

 On 7/30/07, Oscar Picasso [EMAIL PROTECTED] wrote:
 
  I have also noticed the same behavior with the project url, the sit url
  and
  the scm url even if in the effective the corresponding properties are
  correct (without the artifactId appended).
 
  On 7/30/07, Oscar Picasso [EMAIL PROTECTED] wrote:
  
   Hi,
  
   In the parent POM I have the following:
   [...]
 properties
   scmConnection
  http://localhost/repos/repo/${groupId}/${artifactId}/trunk
   http://localhost/repos/repo/$%7BgroupId%7D/$%7BartifactId%7D/trunk
   /scmConnection
 /properties
  
  
 scm
   connection${scmConnection}/connection
   developerConnection${scmConnection}/developerConnection
 /scm
   [...]
  
   The child POM has nothing expect mandatory elements and the reference
 to
   the parent POM. Both the child and the parent are snapshots. The
 parent
  POM
   has been deployed to the remote repository.
  
   When I run mvn help:effective-pom on the child project, I get:
   [...]
 scm
   connection
  http://localhost/repos/repo/com.opicasso/Child/trunk/Child
   /connection
   developerConnection
   http://localhost/repos/repo/com.opicasso/Child/trunk/Child
   /developerConnection
 /scm
   [..]
  
   I would have expected:
   [...]
 scm
   connectionhttp://localhost/repos/repo/com.opicasso/Child/trunk
   /connection
   developerConnection
   http://localhost/repos/repo/com.opicasso/Child/trunk
  /developerConnection
 /scm
   [..]
  
   Why does maven happen the child artifactId to the connections? Does
  maven
   merge the parent scm connections with the children ones ? But in the
  current
   case the child has no scm connections defined in its pom.
  
   How to get rid of this extra artifactId?
  
   Thanks
  
   Oscar
  
  
  
 



 --
 Eric Redmond
 http://blog.propellors.net



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Parent POM, properties and scm problem

2007-07-31 Thread Eric Redmond
Maven does this so that child module's scm can be defined once in the
parent.

scm
  connectionscm:svn:https://url/project/trunk
/scm

modules
  moduleChild

Then the Child module's scm url is automatically set as:

scm
  connectionscm:svn:https://url/project/trunk/Child
/scm

Which is the convention for a multi-module project.

If your Child project has to be seperate, with it's own trunk, etc. I
would suggest (if svn) using svn:externals to access the child under the
parent project. Since it ownly appends the name on a multi-module project,
I'm trying to figure out how you locally check out your project... perhaps
create a trunks-style setup in your version control would be best?

Eric

On 7/30/07, Oscar Picasso [EMAIL PROTECTED] wrote:

 I have also noticed the same behavior with the project url, the sit url
 and
 the scm url even if in the effective the corresponding properties are
 correct (without the artifactId appended).

 On 7/30/07, Oscar Picasso [EMAIL PROTECTED] wrote:
 
  Hi,
 
  In the parent POM I have the following:
  [...]
properties
  scmConnection
 http://localhost/repos/repo/${groupId}/${artifactId}/trunk
  http://localhost/repos/repo/$%7BgroupId%7D/$%7BartifactId%7D/trunk
  /scmConnection
/properties
 
 
scm
  connection${scmConnection}/connection
  developerConnection${scmConnection}/developerConnection
/scm
  [...]
 
  The child POM has nothing expect mandatory elements and the reference to
  the parent POM. Both the child and the parent are snapshots. The parent
 POM
  has been deployed to the remote repository.
 
  When I run mvn help:effective-pom on the child project, I get:
  [...]
scm
  connection
 http://localhost/repos/repo/com.opicasso/Child/trunk/Child
  /connection
  developerConnection
  http://localhost/repos/repo/com.opicasso/Child/trunk/Child
  /developerConnection
/scm
  [..]
 
  I would have expected:
  [...]
scm
  connectionhttp://localhost/repos/repo/com.opicasso/Child/trunk
  /connection
  developerConnection
  http://localhost/repos/repo/com.opicasso/Child/trunk
 /developerConnection
/scm
  [..]
 
  Why does maven happen the child artifactId to the connections? Does
 maven
  merge the parent scm connections with the children ones ? But in the
 current
  case the child has no scm connections defined in its pom.
 
  How to get rid of this extra artifactId?
 
  Thanks
 
  Oscar
 
 
 




-- 
Eric Redmond
http://blog.propellors.net


Re: Parent POM, properties and scm problem

2007-07-30 Thread Oscar Picasso
I have also noticed the same behavior with the project url, the sit url and
the scm url even if in the effective the corresponding properties are
correct (without the artifactId appended).

On 7/30/07, Oscar Picasso [EMAIL PROTECTED] wrote:

 Hi,

 In the parent POM I have the following:
 [...]
   properties
 scmConnectionhttp://localhost/repos/repo/${groupId}/${artifactId}/trunk
 http://localhost/repos/repo/$%7BgroupId%7D/$%7BartifactId%7D/trunk
 /scmConnection
   /properties


   scm
 connection${scmConnection}/connection
 developerConnection${scmConnection}/developerConnection
   /scm
 [...]

 The child POM has nothing expect mandatory elements and the reference to
 the parent POM. Both the child and the parent are snapshots. The parent POM
 has been deployed to the remote repository.

 When I run mvn help:effective-pom on the child project, I get:
 [...]
   scm
 connectionhttp://localhost/repos/repo/com.opicasso/Child/trunk/Child
 /connection
 developerConnection
 http://localhost/repos/repo/com.opicasso/Child/trunk/Child
 /developerConnection
   /scm
 [..]

 I would have expected:
 [...]
   scm
 connectionhttp://localhost/repos/repo/com.opicasso/Child/trunk
 /connection
 developerConnection
 http://localhost/repos/repo/com.opicasso/Child/trunk/developerConnection
   /scm
 [..]

 Why does maven happen the child artifactId to the connections? Does maven
 merge the parent scm connections with the children ones ? But in the current
 case the child has no scm connections defined in its pom.

 How to get rid of this extra artifactId?

 Thanks

 Oscar