Hi,

Your project structure has the following problems:

The parent folder 'rh' contains a maven.xml file that calls the multiproject goal. I suppose you expect this multiproject goal to call rh:build in the 'cs' folder first and then the dependency dcm-cs in the project 'rh' would be resolved without a problem. However this is not what happens. You should be aware that when you run a goal on a Maven project, one of the first things that is done is resolving/retrieving the dependencies. So running 'rh:build' in the folder 'rh' will first try to resolve the dependency 'dcm-cs', which will fail.

Another problem I noticed is an infinite loop problem. As a test, you should put the dependency to dcm-cs in rh/project.xml in comments and run maven rh:build in the 'rh' folder afterwards. You'll see you're in an infinite loop because the goal rh:build in rh/maven.xml folder will execute on **all** projects except 'common' (so also on itself).

Solution for the above problems : move rh/project.xml to rh/app/project.xml (this will also make the <extend> in the POMs more consistent). Also copy rh/maven.xml to rh/app/maven.xml but remove the multiproject part should be removed in the latter.

Also : http://jira.codehaus.org/browse/MPMULTIPROJECT-55 (unfortunately I didn't get any feedback on this from the Maven guru's :-( ).

Regards,
Davy Toch
IT-Consultant
Steria SA/NV

[EMAIL PROTECTED] wrote:

A minor(?) correction: the directory of dcm-cs
is named "cs", while its artifact is named dcm-cs.
So the dir structure is as follows:

(rh
(common)
(cs) ;; produces dcm-cs.jar
)

Thanks,

Rk
x77309

On Thu, 15 Sep 2005, [EMAIL PROTECTED] wrote:

Env:
====
JDK 5.0
Maven 1.0.2
Multiproject plugin: 1.3.1

Context:
========
I have setup a multiproject dependency as follows:
(rh
(common)
(dcm-cs)
)
where both rh and dcm-cs extend ${basedir}common/project.xml
and rh depends on dcm-cs.

I have also defined a custom goal rh:build in toplevel and in
dcm-cs as follows:

// In rh/maven.xml ...
//
<goal name="rh:build">
<ant:echo>
Building RH toplevel...
</ant:echo>
<j:set var="goal" value="rh:build" />
<ant:mkdir dir="${maven.build.dir}" />
<attainGoal name="multiproject:goal"/>
</goal>

// In cs/maven.xml ...
//
<goal name="rh:build" prereqs="jar:install">
<ant:echo>
Building RH Common Services...
</ant:echo>
</goal>




Problem:
========
rh:build at the toplevel does not trigger rh:build in cs; instead
it attempts to download dcm-cs-1.0.jar from the local repository:


$ cd rh; maven -X
//...
Using default goal: rh:build
running script null
[available] [VERBOSE] Unable to find src/main/java to set property
sourcesPresent
[available] [VERBOSE] Unable to find src/test/java to set property
unitTestSourcesPresent
[DEBUG] Adding reference: maven-classpath ->
[DEBUG] Adding reference: maven.compile.src.set ->
Verifying dependencies for dcm:dcm
Getting failed dependencies:
[EMAIL PROTECTED]
Attempting to download dcm-cs-1.0.jar.
Getting URL:
http://roundhouse-repository.cisco.com/maven/dcm/jars/dcm-cs-1.0.jar
Received status code: 404
File not found on one of the repos
java.io.FileNotFoundException:
http://roundhouse-repository.cisco.com/maven/dcm/jars/dcm-cs-1.0.jar
at
org.apache.maven.util.HttpUtils.retrieveArtifact(HttpUtils.java:590)
at org.apache.maven.util.HttpUtils.getFile(HttpUtils.java:395)
//...


Additional Info:
================

(a) Relevant excerpt from Parent project.xml (rh/common/project.xml):

<project>
<pomVersion>3</pomVersion>
<groupId>dcm</groupId>
<name>elidedname>

<!-- The version of the project under development, e.g.
<currentVersion>1.0</currentVersion>
//...
</project>


(b) Relevant excerpt from rh project.xml (rh/project.xml):

<project>
<extend>${basedir}/common/project.xml</extend>

<name>RH Project</name>
<artifactId>dcm</artifactId>

<dependencies>
<dependency>
<groupId>dcm</groupId>
<artifactId>dcm-cs</artifactId>
<version>${pom.currentVersion}</version>
<type>jar</type>
</dependency>
//...
</project>


(c) Relevant excerpt from cs project.xml (rh/cs/project.xml):

<project>
<extend>${basedir}/common/project.xml</extend>

<name>RH Common services</name>
<artifactId>dcm-cs</artifactId>

<dependencies>
<dependency>
<groupId>mortbay</groupId>
<artifactId>org.mortbay.jetty</artifactId>
<version>1.0</version>
<type>jar</type>
</dependency>
</dependencies>
//...
</project>


(d) Relevant excerpt from rh/project.properties:

maven.multiproject.basedir=${basedir}
maven.multiproject.includes=**/project.xml
maven.multiproject.excludes=common/project.xml


Any help greatly appreciated!

Thanks,

Rk
x77309

---------------------------------------------------------------------
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]





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

Reply via email to