Что ж, я не знаю, как бы вы это сделали, если бы это был удаленный файл войны (вам, вероятно, нужно было бы загрузить его перед запуском плагина пристани), но вот как это сделать, когда вы он уже есть где-то в вашей файловой системе:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${version.jetty}</version>
<configuration>
<contextHandlers>
<contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
<war>${project.build.directory}/webapps/foo-bar.war</war>
<contextPath>/foo</contextPath>
</contextHandler>
</contextHandlers>
</configuration>
</plugin>
Я советую добавить эту войну как зависимость от scope: provided.
<dependencies>
<!-- Webapps which will not be included in the final WAR artifact: -->
<dependency>
<groupId>com.foo.bar</groupId>
<artifactId>foo-bar</artifactId>
<version>${version.foo.bar}</version>
<type>war</type>
<scope>provided</scope>
</dependency>
</dependencies>
Кроме того, вам, скорее всего, понадобится что-то вроде:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<!-- Used to copy the foo bar war to the webapps folder -->
<id>copy-dependency-foo-bar</id>
<phase>process-resources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.foo.bar</groupId>
<artifactId>foo-bar</artifactId>
<version>${version.foo.bar}</version>
<type>war</type>
<overWrite>true</overWrite>
<outputDirectory>${project.build.directory}/webapps</outputDirectory>
<destFileName>foo-bar.war</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
Этот последний бит выше гарантирует, что разрешенный артефакт будет скопирован в подпапку webapps вашего целевого каталога до того, как плагин Jetty попытается его загрузить.
person
carlspring
schedule
21.06.2012