You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Miguel Angel Hernández <mi...@gmail.com> on 2007/03/14 17:46:04 UTC

Problem /w RelativePath and Multiple level Inheritance

Hi all,
My first message was rejected as s p a m sob sob.
I have a problem regarding relativePaths, inheritance and aggregation, and
need some help please. I tested this in maven 2.0.5
I have the following directory structure

main:
  - pom.xml
  parent:
  - pom.xml
  son:
    - pom.xml
    - grandson:
       - pom.xml

Inheritance goes like this: parent > son > grandson; and aggregation goes
like: main < son and son < grandson.

Whenever I make a fresh mvn install (fresh meaning my local repository is
clean w/o anyone of my artifacts) from the main I get and error because son
artifact cant find the parent POM. I'm using relativePath to indicate where
the son should search for his parent.

Here is the code:
Main pom:

<?xml version="1.0" encoding="UTF-8"?>
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.migs.ejemplos</groupId>
  <artifactId>maven-test</artifactId>
  <version>0.0.1</version>
  <packaging>pom</packaging>

  <modules>
    <module>son</module>
  </modules>
</project>

Parent pom:

<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.migs.ejemplos</groupId>
  <artifactId>parent</artifactId>
  <packaging>pom</packaging>
  <version>0.0.1</version>
</project>

Son pom:

<?xml version="1.0" encoding="UTF-8"?>
<project>
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId> org.migs.ejemplos</groupId>
    <artifactId>parent</artifactId>
    <version>0.0.1</version>
    <relativePath>../parent/pom.xml</relativePath>
  </parent>
  <groupId> org.migs.ejemplos</groupId>
  <artifactId>son</artifactId>
  <version>0.0.1</version>
  <packaging>pom</packaging>
  <modules>
    <module>grandson</module>
  </modules>
</project>

Grandson POM:

<?xml version="1.0" encoding="UTF-8"?>
<project>
  <modelVersion> 4.0.0 </modelVersion>
  <parent>
    <groupId>org.migs.ejemplos</groupId>
    <artifactId>son</artifactId>
    <version>0.0.1</version>
    <relativePath>../pom.xml</relativePath>
  </parent>
  <groupId>org.migs.ejemplos</groupId>
  <artifactId>grandson</artifactId>
  <version>0.0.1</version>
  <packaging>pom</packaging>
</project>

And here is a part of the ST:

miguel@yuki:~/trabajo/migs.org/ejemplos/maven-test> mvn install -e
+ Error stacktraces are turned on.
[INFO] Scanning for projects...
Downloading: http://repo1.maven.org/maven2/org/migs/ejemplos/parent/0.0.1/parent-0.0.1.pom

[WARNING] Unable to get resource from repository central (
http://repo1.maven.org/maven2)
[INFO]
------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO]
------------------------------------------------------------------------
[INFO] Error building POM (may not be this project's POM).


Project ID: org.migs.ejemplos:son:pom:0.0.1

Reason: Cannot find parent: org.migs.ejemplos:parent for project:
org.migs.ejemplos:son:pom:0.0.1


[INFO]
------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.reactor.MavenExecutionException: Cannot find parent:
org.migs.ejemplos:parent for project: org.migs.ejemplos:son:pom:0.0.1
        at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:365)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:278)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java :115)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:256)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java :39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.classworlds.Launcher.launchEnhanced (Launcher.java
:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java
:430)
        at org.codehaus.classworlds.Launcher.main (Launcher.java:375)
Caused by: org.apache.maven.project.ProjectBuildingException: Cannot find
parent: org.migs.ejemplos:parent for project:
org.migs.ejemplos:son:pom:0.0.1
        at
org.apache.maven.project.DefaultMavenProjectBuilder.assembleLineage (
DefaultMavenProjectBuilder.java:1161)
        at
org.apache.maven.project.DefaultMavenProjectBuilder.assembleLineage(
DefaultMavenProjectBuilder.java:1176)
        at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(
DefaultMavenProjectBuilder.java:674)
        at
org.apache.maven.project.DefaultMavenProjectBuilder.buildFromSourceFileInternal
(DefaultMavenProjectBuilder.java:416)
        at org.apache.maven.project.DefaultMavenProjectBuilder.build (
DefaultMavenProjectBuilder.java:192)
        at org.apache.maven.DefaultMaven.getProject(DefaultMaven.java:515)
        at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java
:447)
        at org.apache.maven.DefaultMaven.collectProjects (DefaultMaven.java
:491)
        at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java
:491)
        at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:351)
        ... 11 more
Caused by: org.apache.maven.project.ProjectBuildingException: POM '
org.migs.ejemplos:parent' not found in repository: Unable to download the
artifact from any repository


The thing is when I comment the aggregation part on the son pom (comment the
modules section) the main installs correctly, or obviously if I install the
parent first. But I think this should build from
the main pom just right.

Thanks

Miguel

Re: Problem /w RelativePath and Multiple level Inheritance

Posted by Miguel Angel Hernández <mi...@gmail.com>.
It worked thanks Patrick!

cheers,

Patrick

On 3/14/07, Patrick Schneider <ps...@gmail.com> wrote:
>
> Hi Miguel,
>
> You should change the <modules> section in your main pom to this:
>
> <modules>
>   <module>parent</module>
>   <module>son</module>
> </modules>
>
> In other words, before son or grandson can be built, you need to build the
> parent.
>
> Cheers,
>
>
> Patrick
>
> On 3/14/07, Miguel Angel Hernández <mi...@gmail.com> wrote:
> >
> > Hi all,
> > My first message was rejected as s p a m sob sob.
> > I have a problem regarding relativePaths, inheritance and aggregation,
> and
> > need some help please. I tested this in maven 2.0.5
> > I have the following directory structure
> >
> > main:
> >   - pom.xml
> >   parent:
> >   - pom.xml
> >   son:
> >     - pom.xml
> >     - grandson:
> >        - pom.xml
> >
> > Inheritance goes like this: parent > son > grandson; and aggregation
> goes
> > like: main < son and son < grandson.
> >
> > Whenever I make a fresh mvn install (fresh meaning my local repository
> is
> > clean w/o anyone of my artifacts) from the main I get and error because
> > son
> > artifact cant find the parent POM. I'm using relativePath to indicate
> > where
> > the son should search for his parent.
> >
> > Here is the code:
> > Main pom:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <project>
> >   <modelVersion>4.0.0</modelVersion>
> >   <groupId>org.migs.ejemplos</groupId>
> >   <artifactId>maven-test</artifactId>
> >   <version>0.0.1</version>
> >   <packaging>pom</packaging>
> >
> >   <modules>
> >     <module>son</module>
> >   </modules>
> > </project>
> >
> > Parent pom:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <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/maven-v4_0_0.xsd">
> >   <modelVersion>4.0.0</modelVersion>
> >   <groupId>org.migs.ejemplos</groupId>
> >   <artifactId>parent</artifactId>
> >   <packaging>pom</packaging>
> >   <version>0.0.1</version>
> > </project>
> >
> > Son pom:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <project>
> >   <modelVersion>4.0.0</modelVersion>
> >   <parent>
> >     <groupId> org.migs.ejemplos</groupId>
> >     <artifactId>parent</artifactId>
> >     <version>0.0.1</version>
> >     <relativePath>../parent/pom.xml</relativePath>
> >   </parent>
> >   <groupId> org.migs.ejemplos</groupId>
> >   <artifactId>son</artifactId>
> >   <version>0.0.1</version>
> >   <packaging>pom</packaging>
> >   <modules>
> >     <module>grandson</module>
> >   </modules>
> > </project>
> >
> > Grandson POM:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <project>
> >   <modelVersion> 4.0.0 </modelVersion>
> >   <parent>
> >     <groupId>org.migs.ejemplos</groupId>
> >     <artifactId>son</artifactId>
> >     <version>0.0.1</version>
> >     <relativePath>../pom.xml</relativePath>
> >   </parent>
> >   <groupId>org.migs.ejemplos</groupId>
> >   <artifactId>grandson</artifactId>
> >   <version>0.0.1</version>
> >   <packaging>pom</packaging>
> > </project>
> >
> > And here is a part of the ST:
> >
> > miguel@yuki:~/trabajo/migs.org/ejemplos/maven-test> mvn install -e
> > + Error stacktraces are turned on.
> > [INFO] Scanning for projects...
> > Downloading:
> >
> http://repo1.maven.org/maven2/org/migs/ejemplos/parent/0.0.1/parent-0.0.1.pom
> >
> > [WARNING] Unable to get resource from repository central (
> > http://repo1.maven.org/maven2)
> > [INFO]
> > ------------------------------------------------------------------------
> > [ERROR] FATAL ERROR
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO] Error building POM (may not be this project's POM).
> >
> >
> > Project ID: org.migs.ejemplos:son:pom:0.0.1
> >
> > Reason: Cannot find parent: org.migs.ejemplos:parent for project:
> > org.migs.ejemplos:son:pom:0.0.1
> >
> >
> > [INFO]
> > ------------------------------------------------------------------------
> > [INFO] Trace
> > org.apache.maven.reactor.MavenExecutionException: Cannot find parent:
> > org.migs.ejemplos:parent for project: org.migs.ejemplos:son:pom:0.0.1
> >         at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java
> > :365)
> >         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java
> :278)
> >         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java :115)
> >         at org.apache.maven.cli.MavenCli.main(MavenCli.java:256)
> >         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >         at sun.reflect.NativeMethodAccessorImpl.invoke(
> > NativeMethodAccessorImpl.java :39)
> >         at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> > DelegatingMethodAccessorImpl.java:25)
> >         at java.lang.reflect.Method.invoke(Method.java:597)
> >         at org.codehaus.classworlds.Launcher.launchEnhanced (
> Launcher.java
> > :315)
> >         at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
> >         at org.codehaus.classworlds.Launcher.mainWithExitCode(
> > Launcher.java
> > :430)
> >         at org.codehaus.classworlds.Launcher.main (Launcher.java:375)
> > Caused by: org.apache.maven.project.ProjectBuildingException: Cannot
> find
> > parent: org.migs.ejemplos:parent for project:
> > org.migs.ejemplos:son:pom:0.0.1
> >         at
> > org.apache.maven.project.DefaultMavenProjectBuilder.assembleLineage (
> > DefaultMavenProjectBuilder.java:1161)
> >         at
> > org.apache.maven.project.DefaultMavenProjectBuilder.assembleLineage(
> > DefaultMavenProjectBuilder.java:1176)
> >         at
> > org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(
> > DefaultMavenProjectBuilder.java:674)
> >         at
> >
> >
> org.apache.maven.project.DefaultMavenProjectBuilder.buildFromSourceFileInternal
> > (DefaultMavenProjectBuilder.java:416)
> >         at org.apache.maven.project.DefaultMavenProjectBuilder.build (
> > DefaultMavenProjectBuilder.java:192)
> >         at org.apache.maven.DefaultMaven.getProject(DefaultMaven.java
> :515)
> >         at org.apache.maven.DefaultMaven.collectProjects(
> DefaultMaven.java
> > :447)
> >         at org.apache.maven.DefaultMaven.collectProjects (
> > DefaultMaven.java
> > :491)
> >         at org.apache.maven.DefaultMaven.collectProjects(
> DefaultMaven.java
> > :491)
> >         at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java
> > :351)
> >         ... 11 more
> > Caused by: org.apache.maven.project.ProjectBuildingException: POM '
> > org.migs.ejemplos:parent' not found in repository: Unable to download
> the
> > artifact from any repository
> >
> >
> > The thing is when I comment the aggregation part on the son pom (comment
> > the
> > modules section) the main installs correctly, or obviously if I install
> > the
> > parent first. But I think this should build from
> > the main pom just right.
> >
> > Thanks
> >
> > Miguel
> >
>

Re: Problem /w RelativePath and Multiple level Inheritance

Posted by Patrick Schneider <ps...@gmail.com>.
Hi Miguel,

You should change the <modules> section in your main pom to this:

<modules>
  <module>parent</module>
  <module>son</module>
</modules>

In other words, before son or grandson can be built, you need to build the
parent.

Cheers,


Patrick

On 3/14/07, Miguel Angel Hernández <mi...@gmail.com> wrote:
>
> Hi all,
> My first message was rejected as s p a m sob sob.
> I have a problem regarding relativePaths, inheritance and aggregation, and
> need some help please. I tested this in maven 2.0.5
> I have the following directory structure
>
> main:
>   - pom.xml
>   parent:
>   - pom.xml
>   son:
>     - pom.xml
>     - grandson:
>        - pom.xml
>
> Inheritance goes like this: parent > son > grandson; and aggregation goes
> like: main < son and son < grandson.
>
> Whenever I make a fresh mvn install (fresh meaning my local repository is
> clean w/o anyone of my artifacts) from the main I get and error because
> son
> artifact cant find the parent POM. I'm using relativePath to indicate
> where
> the son should search for his parent.
>
> Here is the code:
> Main pom:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <project>
>   <modelVersion>4.0.0</modelVersion>
>   <groupId>org.migs.ejemplos</groupId>
>   <artifactId>maven-test</artifactId>
>   <version>0.0.1</version>
>   <packaging>pom</packaging>
>
>   <modules>
>     <module>son</module>
>   </modules>
> </project>
>
> Parent pom:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <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/maven-v4_0_0.xsd">
>   <modelVersion>4.0.0</modelVersion>
>   <groupId>org.migs.ejemplos</groupId>
>   <artifactId>parent</artifactId>
>   <packaging>pom</packaging>
>   <version>0.0.1</version>
> </project>
>
> Son pom:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <project>
>   <modelVersion>4.0.0</modelVersion>
>   <parent>
>     <groupId> org.migs.ejemplos</groupId>
>     <artifactId>parent</artifactId>
>     <version>0.0.1</version>
>     <relativePath>../parent/pom.xml</relativePath>
>   </parent>
>   <groupId> org.migs.ejemplos</groupId>
>   <artifactId>son</artifactId>
>   <version>0.0.1</version>
>   <packaging>pom</packaging>
>   <modules>
>     <module>grandson</module>
>   </modules>
> </project>
>
> Grandson POM:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <project>
>   <modelVersion> 4.0.0 </modelVersion>
>   <parent>
>     <groupId>org.migs.ejemplos</groupId>
>     <artifactId>son</artifactId>
>     <version>0.0.1</version>
>     <relativePath>../pom.xml</relativePath>
>   </parent>
>   <groupId>org.migs.ejemplos</groupId>
>   <artifactId>grandson</artifactId>
>   <version>0.0.1</version>
>   <packaging>pom</packaging>
> </project>
>
> And here is a part of the ST:
>
> miguel@yuki:~/trabajo/migs.org/ejemplos/maven-test> mvn install -e
> + Error stacktraces are turned on.
> [INFO] Scanning for projects...
> Downloading:
> http://repo1.maven.org/maven2/org/migs/ejemplos/parent/0.0.1/parent-0.0.1.pom
>
> [WARNING] Unable to get resource from repository central (
> http://repo1.maven.org/maven2)
> [INFO]
> ------------------------------------------------------------------------
> [ERROR] FATAL ERROR
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Error building POM (may not be this project's POM).
>
>
> Project ID: org.migs.ejemplos:son:pom:0.0.1
>
> Reason: Cannot find parent: org.migs.ejemplos:parent for project:
> org.migs.ejemplos:son:pom:0.0.1
>
>
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Trace
> org.apache.maven.reactor.MavenExecutionException: Cannot find parent:
> org.migs.ejemplos:parent for project: org.migs.ejemplos:son:pom:0.0.1
>         at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java
> :365)
>         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:278)
>         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java :115)
>         at org.apache.maven.cli.MavenCli.main(MavenCli.java:256)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java :39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at org.codehaus.classworlds.Launcher.launchEnhanced (Launcher.java
> :315)
>         at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>         at org.codehaus.classworlds.Launcher.mainWithExitCode(
> Launcher.java
> :430)
>         at org.codehaus.classworlds.Launcher.main (Launcher.java:375)
> Caused by: org.apache.maven.project.ProjectBuildingException: Cannot find
> parent: org.migs.ejemplos:parent for project:
> org.migs.ejemplos:son:pom:0.0.1
>         at
> org.apache.maven.project.DefaultMavenProjectBuilder.assembleLineage (
> DefaultMavenProjectBuilder.java:1161)
>         at
> org.apache.maven.project.DefaultMavenProjectBuilder.assembleLineage(
> DefaultMavenProjectBuilder.java:1176)
>         at
> org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(
> DefaultMavenProjectBuilder.java:674)
>         at
>
> org.apache.maven.project.DefaultMavenProjectBuilder.buildFromSourceFileInternal
> (DefaultMavenProjectBuilder.java:416)
>         at org.apache.maven.project.DefaultMavenProjectBuilder.build (
> DefaultMavenProjectBuilder.java:192)
>         at org.apache.maven.DefaultMaven.getProject(DefaultMaven.java:515)
>         at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java
> :447)
>         at org.apache.maven.DefaultMaven.collectProjects (
> DefaultMaven.java
> :491)
>         at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java
> :491)
>         at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java
> :351)
>         ... 11 more
> Caused by: org.apache.maven.project.ProjectBuildingException: POM '
> org.migs.ejemplos:parent' not found in repository: Unable to download the
> artifact from any repository
>
>
> The thing is when I comment the aggregation part on the son pom (comment
> the
> modules section) the main installs correctly, or obviously if I install
> the
> parent first. But I think this should build from
> the main pom just right.
>
> Thanks
>
> Miguel
>