I'm having trouble building a multi-module project structured as below:

 

top

|-- pom.xml

|-- mod1

|    |-- pom.xml

|    |-- mod1A

|    |   |-- pom.xml

|    |   `-- src....

|    |-- mod1B

|        |-- pom.xml

|        `-- src....

|-- mod2

|   |-- pom.xml

|   `-- src....

`src...

 

Additionally, mod1 is listed ahead of mod2 in the top-level pom.xml
file, so I expect mod1 (and thus also its sub-modules) to be processed
first.  Also, mod2 has a dependency on mod1B.  

 

I run 'mvn install' from the top level, expecting it to a) include all
of the phases in the lifecycle up to install as described in the
documentation
(http://maven.apache.org/guides/introduction/introduction-to-the-lifecyc
le.html) and b) to do this recursively.  With that assumption, I think
that mod1B should be installed before mod2 is processed.  But that is
not the case, as the build of mod2 fails because mod1B is not found in
the local repository.  What seems to be happening is that the
sub-modules of mod1 are not being processed, as evidenced by the
following message:

 

    [INFO] No goals needed for project - skipping

 

Rather, the only thing that gets done when processing mod1 when the
command is invoked from the top-level project directory is that the pom
file is installed (i.e., as a result of package type of "pom" for the
module).

 

Now if I change directory into mod1 and run the same 'mvn install'
command, the mod1A and mod1B modules are installed.  Then, I can run
'mvn install' from the top level and the dependency on mod1B is
satisfied when processing mod2.  Obviously I don't want to have this
take multiple invocations of mvn to build my project.  Are my
assumptions correct about how recursion is supposed to work and, if so,
is there something extra I need to do in order to have the sub-modules
down the hierarchy to be processed?  

 

Tim

 

Reply via email to