maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Voegele (JIRA)" <j...@codehaus.org>
Subject [jira] Commented: (ARCHETYPE-110) Maven archetype overwrites parent information
Date Tue, 18 Nov 2008 21:47:41 GMT

    [ http://jira.codehaus.org/browse/ARCHETYPE-110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=154659#action_154659
] 

Jason Voegele commented on ARCHETYPE-110:
-----------------------------------------

I too vote for Peter's first proposed alternative solution.  This issue is preventing me from
creating a usable multi-module archetype that doesn't require end-users to modify the pom.xml
of the submodule.

> Maven archetype overwrites parent information
> ---------------------------------------------
>
>                 Key: ARCHETYPE-110
>                 URL: http://jira.codehaus.org/browse/ARCHETYPE-110
>             Project: Maven Archetype
>          Issue Type: Bug
>            Reporter: Peter Liljenberg
>            Priority: Critical
>             Fix For: 2.0-alpha-5
>
>
> When creating a new archetype that I want to use for my projects I ran into some trouble
with the created/copied pom.xml.
> The archetype pom.xml (\src\main\resources\archetype-resources\pom.xml) looks like this:
>  <project>
>   <parent>
> 		<groupId>group</groupId>
> 		<artifactId>masterpom</artifactId>
> 		<version>1.0</version>
>   </parent>
>   <modelVersion>4.0.0</modelVersion>
>   <groupId>group</groupId>
>   <artifactId>${artifactId}</artifactId>
>   <version>1.0</version>
> </project>
> When I run my archetype it creates a pom.xml that looks like:
> <project>
>   <parent>
>   <artifactId>integration</artifactId>
>     <groupId>group</groupId>
>     <version>1.0</version>
>   </parent>
>   <modelVersion>4.0.0</modelVersion>
>   <groupId>group</groupId>
>   <artifactId>test</artifactId>
>   <version>1.0</version>
> </project>
> Where "integration" is the name of the pom in the folder that I'm running mvn archetype:create
from.
> Digging into the source we find in DefaultArchetype.java that processTemplate is indeed
reading the parent pom and overwriting whatever was found in the original pom.xml.
> Is this really what we want to achieve? It should be possible to keep the parent-pom
from the pom.xml in the archetype since it reduces the need for all developers to change their
newly created pom.xml.
> <code>
> processTemplates
>  if ( parentModel != null )
>         {
>             Parent parent = new Parent();
>             parent.setGroupId( parentModel.getGroupId() );
>             if ( parent.getGroupId() == null )
>             {
>                 parent.setGroupId( parentModel.getParent().getGroupId() );
>             }
>             parent.setArtifactId( parentModel.getArtifactId() );
>             parent.setVersion( parentModel.getVersion() );
>             if ( parent.getVersion() == null )
>             {
>                 parent.setVersion( parentModel.getParent().getVersion() );
>             }
>             generatedModel.setParent( parent );
> </code>
> Two alternative solutions:
>  * If the parent-pom is specified in the archetype-pom, don't replace it
>  * A parameter that we can supply that will leave the archetype-pom parent setting untouched.
> I vote for solution number 1....

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message