我正在从 Maven 的 jetty 插件迁移到 Cargo 插件(cargo-maven2-plugin),因为 Cargo 会很乐意从依赖的 Maven 模块运行 WAR。在 Web 应用程序内部,我们煞费苦心地通过 JNDI 将所有配置外部化。这些 JNDI 定义是特定于 Web 应用程序的,因此放置在 WAR 外部的 jetty-env.xml 文件中。使用 Jetty 插件,我们指定这个文件如下:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<configuration>
<jettyEnvXml>${basedir}/target/config/jetty-env.xml</jettyEnvXml>
</configuration>
</plugin>
如何在 Cargo 插件中指定这一点?这是我到目前为止的配置。当然,由于缺少 JNDI 配置而失败:
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<configuration>
<container>
<containerId>jetty6x</containerId>
<type>embedded</type>
</container>
<configuration>
<deployables>
<deployable>
<groupId>com.mycompany</groupId>
<artifactId>my-war-module</artifactId>
<type>war</type>
<properties>
<context>/</context>
</properties>
</deployable>
</deployables>
</configuration>
<wait>false</wait>
</configuration>
<executions>
......
</executions>
</plugin>