Hi Hervé

I implemented p4maven the java scm provider for Perforce which stores
client info at server side. As long as user follow same artifactId/folder
convention, it works great. However most of the time, it is not the case, I
have to go thru some hook to get it just barely behave.

Great to see this feature taking shape

Thanks


-Dan


On Wed, Aug 26, 2015 at 6:32 PM, Hervé BOUTEMY <[email protected]>
wrote:

> it is currently not merged to master, just in a MNG-5878 branch for review:
> for such a code change, I chose Review Then Commit process (instead of our
> classical Commit Then Review)
>
> But I'm happy that you are interested
>
> For years, I heard many people (I can name a few I know personnally :) )
> who
> called that convention "undocumented rigidity" from Maven, without really
> knowing about why this convention was the only solution before someone
> imagine
> a meaningfull configuration: then there was no proposal associated until
> MNG-5878
>
> Now it's time to see if my (implemented) proposal is ok both from usability
> point of view and from code point of view
>
> Regards,
>
> Hervé
>
> Le mercredi 26 août 2015 17:55:48 Dan Tran a écrit :
> > Very excited to see how I can use this property.  Good stuff
> >
> > Thanks
> >
> > -Dan
> >
> > On Wed, Aug 26, 2015 at 1:50 PM, Hervé BOUTEMY <[email protected]>
> >
> > wrote:
> > > I think I have found a way to support module directory in SCM & site
> that
> > > is
> > > not artifactId
> > > AFAIK, it's a long awaited feature that was until now feared to wreck
> > > havock
> > >
> > > please review and tell what you think about it
> > >
> > > Regards,
> > >
> > > Hervé
> > >
> > > Le mercredi 26 août 2015 20:26:37 [email protected] a écrit :
> > > > Repository: maven
> > > >
> > > > Updated Branches:
> > > >   refs/heads/MNG-5878 [created] 812e1e9d5
> > > >
> > > > MNG-5878 added project.directory property to configure module
> directory
> > > > when not equals to artifactId
> > > >
> > > > Project: http://git-wip-us.apache.org/repos/asf/maven/repo
> > > > Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/812e1e9d
> > > > Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/812e1e9d
> > > > Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/812e1e9d
> > > >
> > > > Branch: refs/heads/MNG-5878
> > > > Commit: 812e1e9d5b7d15a3b206371fc18110193f83cc1f
> > > > Parents: 6b6e9bf
> > > > Author: Hervé Boutemy <[email protected]>
> > > > Authored: Wed Aug 26 22:26:17 2015 +0200
> > > > Committer: Hervé Boutemy <[email protected]>
> > > > Committed: Wed Aug 26 22:26:17 2015 +0200
> > > >
> > > >
> ----------------------------------------------------------------------
> > > >
> > > >  .../DefaultInheritanceAssembler.java            | 60
> > >
> > > ++++++++++++++++----
> > >
> > > >  maven-model-builder/src/site/apt/index.apt      |  2 +-
> > > >  .../DefaultInheritanceAssemblerTest.java        | 27 ++++++++-
> > > >  .../module-path-not-artifactId-child.xml        | 43 ++++++++++++++
> > > >  .../module-path-not-artifactId-expected.xml     | 44 ++++++++++++++
> > > >  .../module-path-not-artifactId-parent.xml       | 37 ++++++++++++
> > > >  6 files changed, 199 insertions(+), 14 deletions(-)
> > > >
> > > >
> ----------------------------------------------------------------------
> > >
> > >
> http://git-wip-us.apache.org/repos/asf/maven/blob/812e1e9d/maven-model-bui
> > > ld
> > >
> > >
> er/src/main/java/org/apache/maven/model/inheritance/DefaultInheritanceAsse
> > > mb>
> > > > ler.java
> > > >
> ----------------------------------------------------------------------
> > >
> > > diff
> > >
> > > > --git
> > >
> > >
> a/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/Def
> > > a
> > >
> > > > ultInheritanceAssembler.java
> > >
> > >
> b/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/Def
> > > a
> > >
> > > > ultInheritanceAssembler.java index 48fdad5..7c2a3b4 100644
> > > > ---
> > >
> > >
> a/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/Def
> > > a
> > >
> > > > ultInheritanceAssembler.java +++
> > >
> > >
> b/maven-model-builder/src/main/java/org/apache/maven/model/inheritance/Def
> > > a
> > >
> > > > ultInheritanceAssembler.java @@ -19,14 +19,16 @@ package
> > > > org.apache.maven.model.inheritance;
> > > >
> > > >   * under the License.
> > > >   */
> > > >
> > > > -import java.io.File;
> > > >
> > > >  import java.util.ArrayList;
> > > >  import java.util.HashMap;
> > > >  import java.util.LinkedHashMap;
> > > >  import java.util.List;
> > > >  import java.util.Map;
> > > >
> > > > +import java.util.Properties;
> > > >
> > > > +import org.apache.maven.model.InputLocation;
> > > >
> > > >  import org.apache.maven.model.Model;
> > > >
> > > > +import org.apache.maven.model.ModelBase;
> > > >
> > > >  import org.apache.maven.model.Plugin;
> > > >  import org.apache.maven.model.PluginContainer;
> > > >  import org.apache.maven.model.ReportPlugin;
> > > >
> > > > @@ -48,12 +50,18 @@ public class DefaultInheritanceAssembler
> > > >
> > > >      private InheritanceModelMerger merger = new
> > >
> > > InheritanceModelMerger();
> > >
> > > > +    private final static String CHILD_DIRECTORY = "child-directory";
> > > > +
> > > > +    private final static String CHILD_DIRECTORY_PROPERTY =
> > > > "project.directory"; +
> > > >
> > > >      @Override
> > > >      public void assembleModelInheritance( Model child, Model parent,
> > > >
> > > > ModelBuildingRequest request, ModelProblemCollector problems ) {
> > > >
> > > >          Map<Object, Object> hints = new HashMap<>();
> > > >
> > > > -        hints.put( MavenModelMerger.CHILD_PATH_ADJUSTMENT,
> > > > getChildPathAdjustment( child, parent ) ); +        String childPath
> =
> > > > child.getProperties().getProperty( CHILD_DIRECTORY_PROPERTY,
> > > > child.getArtifactId() ); +        hints.put( CHILD_DIRECTORY,
> childPath
> > >
> > > );
> > >
> > > > +        hints.put( MavenModelMerger.CHILD_PATH_ADJUSTMENT,
> > > > getChildPathAdjustment( child, parent, childPath ) ); merger.merge(
> > >
> > > child,
> > >
> > > > parent, false, hints );
> > > >
> > > >      }
> > > >
> > > > @@ -75,7 +83,7 @@ public class DefaultInheritanceAssembler
> > > >
> > > >       * @param parent The parent model, may be <code>null</code>.
> > > >       * @return The path adjustment, can be empty but never
> > > >
> > > > <code>null</code>. */
> > > > -    private String getChildPathAdjustment( Model child, Model
> parent )
> > > > +    private String getChildPathAdjustment( Model child, Model
> parent,
> > > > String childDirectory ) {
> > > >
> > > >          String adjustment = "";
> > > >
> > > > @@ -90,10 +98,9 @@ public class DefaultInheritanceAssembler
> > > >
> > > >               * repository. In other words, modules where artifactId
> !=
> > > >
> > > > moduleDirName will see different effective URLs * depending on how
> the
> > > > model was constructed (from filesystem or from repository). */
> > > > -            File childDirectory = child.getProjectDirectory();
> > > > -            if ( childDirectory != null )
> > > > +            if ( child.getProjectDirectory() != null )
> > > >
> > > >              {
> > > >
> > > > -                childName = childDirectory.getName();
> > > > +                childName = child.getProjectDirectory().getName();
> > > >
> > > >              }
> > > >
> > > >              for ( String module : parent.getModules() )
> > > >
> > > > @@ -115,7 +122,7 @@ public class DefaultInheritanceAssembler
> > > >
> > > >                  moduleName = moduleName.substring( lastSlash + 1 );
> > > >
> > > > -                if ( moduleName.equals( childName ) && lastSlash >=
> 0 )
> > > > +                if ( ( moduleName.equals( childName ) || (
> > > > moduleName.equals( childDirectory ) ) ) && lastSlash >= 0 ) {
> > > >
> > > >                      adjustment = module.substring( 0, lastSlash );
> > > >                      break;
> > > >
> > > > @@ -133,13 +140,13 @@ public class DefaultInheritanceAssembler
> > > >
> > > >          @Override
> > > >          protected String extrapolateChildUrl( String parentUrl,
> > >
> > > Map<Object,
> > >
> > > > Object> context ) {
> > > > -            Object artifactId = context.get( ARTIFACT_ID );
> > > > +            Object childDirectory = context.get( CHILD_DIRECTORY );
> > > >
> > > >              Object childPathAdjustment = context.get(
> > >
> > > CHILD_PATH_ADJUSTMENT
> > >
> > > > );
> > > >
> > > > -            if ( artifactId != null && childPathAdjustment != null )
> > > > +            if ( childDirectory != null && childPathAdjustment !=
> null
> > > > )
> > > >
> > > >              {
> > > >
> > > > -                // append childPathAdjustment and artifactId to
> parent
> > >
> > > url
> > >
> > > > -                return appendPath( parentUrl, artifactId.toString(),
> > > > childPathAdjustment.toString() ); +                // append
> > > > childPathAdjustment and childDirectory to parent url +
> > > > return appendPath( parentUrl, childDirectory.toString(),
> > > > childPathAdjustment.toString() ); }
> > > >
> > > >              else
> > > >              {
> > > >
> > > > @@ -185,6 +192,37 @@ public class DefaultInheritanceAssembler
> > > >
> > > >          }
> > > >
> > > >          @Override
> > > >
> > > > +        protected void mergeModelBase_Properties( ModelBase target,
> > > > ModelBase source, boolean sourceDominant, +
> > > >
> > > >                  Map<Object, Object> context ) +        {
> > > >
> > > > +            Properties merged = new Properties();
> > > > +            if ( sourceDominant )
> > > > +            {
> > > > +                merged.putAll( target.getProperties() );
> > > > +                putAll( merged, source.getProperties(),
> > > > CHILD_DIRECTORY_PROPERTY ); +            }
> > > > +            else
> > > > +            {
> > > > +                merged.putAll( source.getProperties() );
> > > > +                putAll( merged, target.getProperties(),
> > > > CHILD_DIRECTORY_PROPERTY ); +            }
> > > > +            target.setProperties( merged );
> > > > +            target.setLocation( "properties", InputLocation.merge(
> > > > target.getLocation( "properties" ), +
> > > >
> > > >                             source.getLocation( "properties" ),
> > > >
> > > > sourceDominant ) ); +        }
> > > > +
> > > > +        private void putAll( Map<Object, Object> s, Map<Object,
> Object>
> > >
> > > t,
> > >
> > > > Object excludeKey ) +        {
> > > > +            for ( Map.Entry<Object, Object> e : t.entrySet() )
> > > > +            {
> > > > +                if ( !e.getKey().equals( excludeKey ) )
> > > > +                {
> > > > +                    s.put( e.getKey(), e.getValue() );
> > > > +                }
> > > > +            }
> > > > +        }
> > > > +
> > > > +        @Override
> > > >
> > > >          protected void mergePluginContainer_Plugins( PluginContainer
> > > >
> > > > target, PluginContainer source, boolean sourceDominant, Map<Object,
> > >
> > > Object>
> > >
> > > > context ) {
> > >
> > >
> http://git-wip-us.apache.org/repos/asf/maven/blob/812e1e9d/maven-model-bui
> > > ld>
> > > > er/src/site/apt/index.apt
> > > >
> ----------------------------------------------------------------------
> > >
> > > diff
> > >
> > > > --git a/maven-model-builder/src/site/apt/index.apt
> > > > b/maven-model-builder/src/site/apt/index.apt index 9a645f4..764f8c6
> > >
> > > 100644
> > >
> > > > --- a/maven-model-builder/src/site/apt/index.apt
> > > > +++ b/maven-model-builder/src/site/apt/index.apt
> > > > @@ -62,7 +62,7 @@ Maven Model Builder
> > >
> > >
> ({{{./xref/org/apache/maven/model/inheritance/DefaultInheritanceAssembler.
> > > h
> > >
> > > > tml}source}}). Notice that <<<project.url>>>,
> > >
> > > <<<project.scm.connection>>>,
> > >
> > > > <<<project.scm.developerConnection>>>, <<<project.scm.url>>> and
> > >
> > > > <<<project.distributionManagement.site.url>>> have a special
> treatment:
> > > if
> > >
> > > > not overridden in child, the default value is parent's one -   with
> > > > child
> > > > artifact id appended
> > > > +   with child artifact id appended, or <<<project.directory>>>
> property
> > > > value if directory is not equals to artifact id
> > > >
> > > >     ** model interpolation (see below)
> > >
> > >
> http://git-wip-us.apache.org/repos/asf/maven/blob/812e1e9d/maven-model-bui
> > > ld
> > >
> > >
> er/src/test/java/org/apache/maven/model/inheritance/DefaultInheritanceAsse
> > > mb>
> > > > lerTest.java
> > > >
> ----------------------------------------------------------------------
> > >
> > > diff
> > >
> > > > --git
> > >
> > >
> a/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/Def
> > > a
> > >
> > > > ultInheritanceAssemblerTest.java
> > >
> > >
> b/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/Def
> > > a
> > >
> > > > ultInheritanceAssemblerTest.java index f9e95ec..e3a2d50 100644
> > > > ---
> > >
> > >
> a/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/Def
> > > a
> > >
> > > > ultInheritanceAssemblerTest.java +++
> > >
> > >
> b/maven-model-builder/src/test/java/org/apache/maven/model/inheritance/Def
> > > a
> > >
> > > > ultInheritanceAssemblerTest.java @@ -88,12 +88,35 @@ public class
> > > > DefaultInheritanceAssemblerTest
> > > >
> > > >          try ( Reader control = new InputStreamReader( new
> > >
> > > FileInputStream(
> > >
> > > > expected ), "UTF-8" ); Reader test = new InputStreamReader( new
> > > > FileInputStream( actual ), "UTF-8" ) ) {
> > > > -
> > > >
> > > >              XMLUnit.setIgnoreComments( true );
> > > >              XMLUnit.setIgnoreWhitespace( true );
> > > >              XMLAssert.assertXMLEqual( control, test );
> > > >
> > > >          }
> > > >
> > > > -
> > > >
> > > >      }
> > > >
> > > > +    public void testModulePathNotArtifactId()
> > > > +        throws Exception
> > > > +    {
> > > > +        Model parent = getModel(
> "module-path-not-artifactId-parent" );
> > > > +
> > > > +        Model child = getModel( "module-path-not-artifactId-child"
> );
> > > > +
> > > > +        SimpleProblemCollector problems = new
> SimpleProblemCollector();
> > > > +
> > > > +        assembler.assembleModelInheritance( child, parent, null,
> > >
> > > problems
> > >
> > > > ); +
> > > > +        File actual = getTestFile(
> > >
> > >
> "target/test-classes/poms/inheritance/module-path-not-artifactId-actual.xm
> > > l
> > >
> > > > " ); +
> > > > +        writer.write( actual, null, child );
> > > > +
> > > > +        // check with getPom(
> "module-path-not-artifactId-effective" )
> > > > +        File expected = getPom(
> "module-path-not-artifactId-expected"
> > > > );
> > > > +        try ( Reader control = new InputStreamReader( new
> > >
> > > FileInputStream(
> > >
> > > > expected ), "UTF-8" ); +              Reader test = new
> > >
> > > InputStreamReader(
> > >
> > > > new FileInputStream( actual ), "UTF-8" ) ) +        {
> > > > +            XMLUnit.setIgnoreComments( true );
> > > > +            XMLUnit.setIgnoreWhitespace( true );
> > > > +            XMLAssert.assertXMLEqual( control, test );
> > > > +        }
> > > > +    }
> > > >
> > > >  }
> > >
> > >
> http://git-wip-us.apache.org/repos/asf/maven/blob/812e1e9d/maven-model-bui
> > > ld
> > >
> > >
> er/src/test/resources/poms/inheritance/module-path-not-artifactId-child.xm
> > > l
> > >
> > > >
> ----------------------------------------------------------------------
> > >
> > > diff
> > >
> > > > --git
> > >
> > >
> a/maven-model-builder/src/test/resources/poms/inheritance/module-path-not-
> > > a
> > >
> > > > rtifactId-child.xml
> > >
> > >
> b/maven-model-builder/src/test/resources/poms/inheritance/module-path-not-
> > > a
> > >
> > > > rtifactId-child.xml new file mode 100644
> > > > index 0000000..7031f44
> > > > --- /dev/null
> > > > +++
> > >
> > >
> b/maven-model-builder/src/test/resources/poms/inheritance/module-path-not-
> > > a
> > >
> > > > rtifactId-child.xml @@ -0,0 +1,43 @@
> > > > +<?xml version="1.0" encoding="UTF-8"?>
> > > > +
> > > > +<!--
> > > > +Licensed to the Apache Software Foundation (ASF) under one
> > > > +or more contributor license agreements.  See the NOTICE file
> > > > +distributed with this work for additional information
> > > > +regarding copyright ownership.  The ASF licenses this file
> > > > +to you under the Apache License, Version 2.0 (the
> > > > +"License"); you may not use this file except in compliance
> > > > +with the License.  You may obtain a copy of the License at
> > > > +
> > > > +  http://www.apache.org/licenses/LICENSE-2.0
> > > > +
> > > > +Unless required by applicable law or agreed to in writing,
> > > > +software distributed under the License is distributed on an
> > > > +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > > > +KIND, either express or implied.  See the License for the
> > > > +specific language governing permissions and limitations
> > > > +under the License.
> > > > +-->
> > > > +
> > > > +<project xmlns="http://maven.apache.org/POM/4.0.0";
> > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; +
> > > > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> > > > http://maven.apache.org/xsd/maven-4.0.0.xsd";> +
> > > > <modelVersion>4.0.0</modelVersion>
> > > > +
> > > > +  <parent>
> > > > +    <groupId>inheritance</groupId>
> > > > +    <artifactId>parent</artifactId>
> > > > +    <version>11-SNAPSHOT</version>
> > > > +  </parent>
> > > > +
> > > > +  <artifactId>child-artifact-id</artifactId>
> > > > +  <name>Model inheritance test parent: module directory !=
> > > > artifactId</name> +  <description>
> > > > +    artifactId == "child-artifact-id"
> > > > +    but expect path on SCM and site == "child"
> > > > +    feature: support "project.directory" property, ressembling
> future
> > >
> > > model
> > >
> > > > addition of "directory" element along "artifactId" +  </description>
> > > > +
> > > > +  <properties>
> > > > +    <project.directory>child</project.directory>
> > > > +  </properties>
> > > > +</project>
> > > > \ No newline at end of file
> > >
> > >
> http://git-wip-us.apache.org/repos/asf/maven/blob/812e1e9d/maven-model-bui
> > > ld
> > >
> > >
> er/src/test/resources/poms/inheritance/module-path-not-artifactId-expected
> > > .x>
> > > > ml
> > > >
> ----------------------------------------------------------------------
> > > > diff --git
> > >
> > >
> a/maven-model-builder/src/test/resources/poms/inheritance/module-path-not-
> > > a
> > >
> > > > rtifactId-expected.xml
> > >
> > >
> b/maven-model-builder/src/test/resources/poms/inheritance/module-path-not-
> > > a
> > >
> > > > rtifactId-expected.xml new file mode 100644
> > > > index 0000000..38d9406
> > > > --- /dev/null
> > > > +++
> > >
> > >
> b/maven-model-builder/src/test/resources/poms/inheritance/module-path-not-
> > > a
> > >
> > > > rtifactId-expected.xml @@ -0,0 +1,44 @@
> > > > +<?xml version="1.0" encoding="UTF-8"?>
> > > > +
> > > > +<!--
> > > > +Licensed to the Apache Software Foundation (ASF) under one
> > > > +or more contributor license agreements.  See the NOTICE file
> > > > +distributed with this work for additional information
> > > > +regarding copyright ownership.  The ASF licenses this file
> > > > +to you under the Apache License, Version 2.0 (the
> > > > +"License"); you may not use this file except in compliance
> > > > +with the License.  You may obtain a copy of the License at
> > > > +
> > > > +  http://www.apache.org/licenses/LICENSE-2.0
> > > > +
> > > > +Unless required by applicable law or agreed to in writing,
> > > > +software distributed under the License is distributed on an
> > > > +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > > > +KIND, either express or implied.  See the License for the
> > > > +specific language governing permissions and limitations
> > > > +under the License.
> > > > +-->
> > > > +
> > > > +<project xmlns="http://maven.apache.org/POM/4.0.0";
> > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; +
> > > > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> > > > http://maven.apache.org/xsd/maven-4.0.0.xsd";> +
> > > > <modelVersion>4.0.0</modelVersion>
> > > > +
> > > > +  <parent>
> > > > +    <groupId>inheritance</groupId>
> > > > +    <artifactId>parent</artifactId>
> > > > +    <version>11-SNAPSHOT</version>
> > > > +  </parent>
> > > > +
> > > > +  <groupId>inheritance</groupId>
> > > > +  <artifactId>child-artifact-id</artifactId>
> > > > +  <version>11-SNAPSHOT</version>
> > > > +  <name>Model inheritance test parent: module directory !=
> > > > artifactId</name> +  <description>
> > > > +    artifactId == "child-artifact-id"
> > > > +    but expect path on SCM and site == "child"
> > > > +    feature: support "project.directory" property, ressembling
> future
> > >
> > > model
> > >
> > > > addition of "directory" element along "artifactId" +  </description>
> > > > +
> > > > +  <url>http://www.apache.org/child/</url>
> > > > +
> > > > +</project>
> > >
> > >
> http://git-wip-us.apache.org/repos/asf/maven/blob/812e1e9d/maven-model-bui
> > > ld
> > >
> > >
> er/src/test/resources/poms/inheritance/module-path-not-artifactId-parent.x
> > > ml>
> > > >
> ----------------------------------------------------------------------
> > >
> > > diff
> > >
> > > > --git
> > >
> > >
> a/maven-model-builder/src/test/resources/poms/inheritance/module-path-not-
> > > a
> > >
> > > > rtifactId-parent.xml
> > >
> > >
> b/maven-model-builder/src/test/resources/poms/inheritance/module-path-not-
> > > a
> > >
> > > > rtifactId-parent.xml new file mode 100644
> > > > index 0000000..d29d78c
> > > > --- /dev/null
> > > > +++
> > >
> > >
> b/maven-model-builder/src/test/resources/poms/inheritance/module-path-not-
> > > a
> > >
> > > > rtifactId-parent.xml @@ -0,0 +1,37 @@
> > > > +<?xml version="1.0" encoding="UTF-8"?>
> > > > +
> > > > +<!--
> > > > +Licensed to the Apache Software Foundation (ASF) under one
> > > > +or more contributor license agreements.  See the NOTICE file
> > > > +distributed with this work for additional information
> > > > +regarding copyright ownership.  The ASF licenses this file
> > > > +to you under the Apache License, Version 2.0 (the
> > > > +"License"); you may not use this file except in compliance
> > > > +with the License.  You may obtain a copy of the License at
> > > > +
> > > > +  http://www.apache.org/licenses/LICENSE-2.0
> > > > +
> > > > +Unless required by applicable law or agreed to in writing,
> > > > +software distributed under the License is distributed on an
> > > > +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > > > +KIND, either express or implied.  See the License for the
> > > > +specific language governing permissions and limitations
> > > > +under the License.
> > > > +-->
> > > > +
> > > > +<project xmlns="http://maven.apache.org/POM/4.0.0";
> > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; +
> > > > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> > > > http://maven.apache.org/xsd/maven-4.0.0.xsd";> +
> > > > <modelVersion>4.0.0</modelVersion>
> > > > +
> > > > +  <groupId>inheritance</groupId>
> > > > +  <artifactId>parent</artifactId>
> > > > +  <version>11-SNAPSHOT</version>
> > > > +
> > > > +  <name>Model inheritance test parent: module path !=
> artifactId</name>
> > > > +  <url>http://www.apache.org/</url>
> > > > +
> > > > +  <modules>
> > > > +    <module>child</module>
> > > > +  </modules>
> > > > +
> > > > +</project>
> > > > \ No newline at end of file
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [email protected]
> > > For additional commands, e-mail: [email protected]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to