1

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

原因是我希望我的一位客户通过获取我的 CI 服务器上传到我的公司 Maven 存储库的构建来自动使用我的一个项目的最新版本。

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

4

1 回答 1

1

我不知道码头插件是否可以,但货物插件绝对可以。

你可以配置 cargo 下载一个版本的 jetty 和你想要运行的 war 文件。这是我用来部署到 tomcat 的配置,但它不应该与码头所需的配置相差太大。我们甚至使用这种方式在同一个 tomcat 中部署多个战争。

我的做法是先下载war和tomcat(作为依赖),然后使用依赖插件解压war文件(这只是因为我添加了一些配置文件),然后告诉cargo从所在文件夹启动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>
于 2012-08-03T15:27:44.863 回答