我试图弄清楚是否可以使用maven从存储库下载war工件并使用jetty插件启动它。
原因是我希望我的一个客户自动使用我的一个项目的最新版本,方法是将构建我的CI服务器上传到我的公司Maven repo。
这可能吗?如果是......怎么样?
答案 0 :(得分:1)
我不知道它是否可以使用jetty插件,但使用货物插件肯定是可能的。
您可以配置货物以下载您要运行的jetty版本和war文件。这是我用来部署到tomcat的配置,但它不应该与jetty所需的配置太不一样。我们甚至用这种方式在同一个tomcat中部署几个战争。
我所做的是首先下载war和tomcat(作为依赖项),然后使用依赖插件解压war文件(这只是因为我添加了一些配置文件),然后告诉货物启动web应用程序我解压缩战争的文件夹。
<dependency>
<groupId>org.apache</groupId>
<artifactId>tomcat</artifactId>
<version>${tomcat.version}</version>
<type>zip</type>
</dependency>
[...]
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>unpack war and configuration</id>
<phase>prepare-package</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>war-group-id</groupId>
<artifactId>war-artifact-id</artifactId>
<version>version</version>
<type>war</type>
<overWrite>true</overWrite>
<outputDirectory>${project.build.directory}/war
</outputDirectory>
</artifactItem>
</artifactItems>
<includes>**/*</includes>
</configuration>
</execution>
</executions>
</plugin>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<configuration>
<container>
<containerId>tomcat6x</containerId>
<output>${project.build.directory}/logs/container.log</output>
<log>${project.build.directory}/logs/cargo.log</log>
<append>false</append>
<zipUrlInstaller>
<url>file:///${settings.localRepository}/org/apache/tomcat/${tomcat.version}/tomcat-${tomcat.version}.zip
</url>
</zipUrlInstaller>
<dependencies>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<classpath>shared</classpath>
</dependency>
</dependencies>
</container>
<configuration>
<type>standalone</type>
<home>${project.build.directory}/tomcat6x</home>
<deployables>
<deployable>
<location>${project.build.directory}/war</location>
<type>war</type>
<properties>
<context>/context</context>
</properties>
</deployable>
</deployables>
<properties>
<cargo.servlet.port>${cargo.servlet.port}</cargo.servlet.port>
<cargo.rmi.port>${cargo.rmi.port}</cargo.rmi.port>
<cargo.tomcat.ajp.port>${cargo.tomcat.ajp.port}</cargo.tomcat.ajp.port>
</properties>
</configuration>
</configuration>
</plugin>
</plugins>
</pluginManagement>