Hi,

I'm trying to run a maven build war file using one of the container plugins 
(cargo, tomcat or jetty). While this works fine in single project setup, I 
don't know how to get it properly work in multi project setup, if I have 
dependencies from the war module to at least on other child project. The 
multiproject setup I'm using is similar to the following (pom file are below):

parent (pom) / child1 (jar)
             / child2 (war)

where the child2 module depends on the module child1.
Building and packaging all modules from the top-level project works fine, but 
starting the webapp (child2.war) is not possible. Running a "mvn tomcat:run" 
from inside of module "child2" results in the following error:

[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'tomcat'.
[INFO] 
----------------------------------------------------------------------------
[INFO] Building Unnamed - example:child2:war:1.0-SNAPSHOT
[INFO]    task-segment: [tomcat:run]
[INFO] 
----------------------------------------------------------------------------
[INFO] Preparing tomcat:run
[INFO] [resources:resources]
[INFO] Using default encoding to copy filtered resources.
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to resolve artifact.

Missing:
----------
1) example:child1:jar:1.0-SNAPSHOT

  Try downloading the file manually from the project website.

  Then, install it using the command: 
      mvn install:install-file -DgroupId=example -DartifactId=child1 \
          -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=/path/to/file

  Path to dependency: 
        1) example:child2:war:1.0-SNAPSHOT
        2) example:child1:jar:1.0-SNAPSHOT

----------
1 required artifact is missing.

for artifact: 
  example:child2:war:1.0-SNAPSHOT


As far I understand maven, this error is comprehensible, because when running 
maven from inside of the child module, maven doesn't know how to build the 
child1 dependency. So I would think, that running "mvn tomcat:run" from inside 
of the top-level module would be more appropriate. But this isn't possible, 
too, because the top-level module doesn't know anything about  the 
maven-tomcat-plugin. For sure, I can solve this problem, by running a "mvn 
install" first, go into the child2 module and run a "mvn tomcat:run". This 
seems to me a little bit too complicated.
So I wonder if there something wrong with my project setup or if there is 
better way to run the webapp using maven?


Carsten


===

top-level module
----------------
<?xml version="1.0" encoding="UTF-8"?>
<project>
        <modelVersion>4.0.0</modelVersion>
        <groupId>example</groupId>
        <artifactId>parent</artifactId>
        <packaging>pom</packaging>
        <version>1.0-SNAPSHOT</version>
        <modules>
                <module>child1</module>
                <module>child2</module>
        </modules>
        <properties>
                <example.version>${project.version}</example.version>
        </properties>
</project>


child1
------
<?xml version="1.0" encoding="UTF-8"?>
<project>
        <parent>
                <groupId>example</groupId>
                <artifactId>parent</artifactId>
                <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
        <groupId>example</groupId>
        <artifactId>child1</artifactId>
        <packaging>jar</packaging>
</project>

child2
------
<?xml version="1.0" encoding="UTF-8"?>
<project>
        <parent>
                <groupId>example</groupId>
                <artifactId>parent</artifactId>
                <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
        <groupId>example</groupId>
        <artifactId>child2</artifactId>
        <packaging>war</packaging>
        <build>
                <plugins>
                        <plugin>
                                <groupId>org.codehaus.mojo</groupId>
                                <artifactId>tomcat-maven-plugin</artifactId>
                        </plugin>
                        <plugin>
                                <groupId>org.codehaus.cargo</groupId>
                                <artifactId>cargo-maven2-plugin</artifactId>
                                <configuration>
                                        <container>
                                                
<containerId>tomcat5x</containerId>
                                                
<home>/opt/apache-tomcat-5.5.17</home>
                                        </container>
                                </configuration>
                        </plugin>
                </plugins>
        </build>
        <dependencies>
                <dependency>
                        <groupId>example</groupId>
                        <artifactId>child1</artifactId>
                        <version>${example.version}</version>
                </dependency>
        </dependencies>
</project>



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

Reply via email to