使用从远程存储库下载的maven war工件启动jetty

时间:2012-08-03 15:14:24

标签: maven jetty

我试图弄清楚是否可以使用maven从存储库下载war工件并使用jetty插件启动它。

原因是我希望我的一个客户自动使用我的一个项目的最新版本,方法是将构建我的CI服务器上传到我的公司Maven repo。

这可能吗?如果是......怎么样?

1 个答案:

答案 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>