Я еще не нашел способ сделать это, но я нашел способ, который работает в моем проекте.В настоящее время у меня есть проект с по существу 3 подмодулями:
dependencies
webapp
smoketest
Когда я собираю проект "webapp", я выполняю следующую декларацию плагина:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<executions>
<execution>
<id>create-war-smoketest</id>
<phase>verify</phase>
<goals>
<goal>war</goal>
</goals>
<configuration>
<webappDirectory>${project.build.directory}/exploded</webappDirectory>
<primaryArtifact>false</primaryArtifact>
<classifier>smoketest</classifier>
<webResources>
<resource>
<filtering>true</filtering>
<directory>src/test/resources/smoketest</directory>
<targetPath>META-INF</targetPath>
<includes>
<include>context.xml</include>
</includes>
</resource>
</webResources>
</configuration>
</execution>
</executions>
</plugin>
А потом, когда яЯ использую пакет Cargo / WebTest в проекте SmokeTest, я указываю самый дымный WAR-файл в качестве зависимости и в своей конфигурации Cargo устанавливаю мои развертываемые файлы следующим образом:
<deployables>
<deployable>
<groupId>${pom.groupId}</groupId>
<artifactId>webapp</artifactId>
<type>war</type>
<properties>
<context>smoketest</context>
</properties>
</deployable>
</deployables>
С зависимостью, выглядящей примерно так:
<dependencies>
<dependency>
<groupId>${pom.groupId}</groupId>
<artifactId>webapp</artifactId>
<version>${pom.version}</version>
<classifier>smoketest</classifier>
<type>war</type>
<scope>system</scope>
<!-- trick the dependency plugin to never look for it in the repo -->
<systemPath>${basedir}/../webapp/target/webapp-${pom.version}-smoketest.war</systemPath>
</dependency>
</dependencies>
Это очень грязно, но, по крайней мере, работает ... пока.Одно быстрое замечание: мой комментарий о том, что он никогда не ищет версию в репозитории, на данный момент, возможно, неверен;Я думаю, что в какой-то момент этот трюк мог быть нарушен изменением плагина зависимостей.