Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Examples

Here is an example Maven2 Maven 3 plugin configuration that:

  • Deploys on a remote Jetty 6.x server
  • The server is on production17, port 8080
  • The Jetty remote deployer WAR is secured using the Jetty role manager
  • A user called someusername with password somepassword is defined as manager
Code Block
xml
xml
<dependencies>
  <dependency>
    <groupId>test.somegroup</groupId>
    <artifactId>somewar</artifactId>
    <version>1.0.0</version>
    <type>war</type>
  </dependency>
</dependencies>

...

<plugins>
  <plugin>
    <groupId>org.codehaus.cargo</groupId>
    <artifactId>cargo-maven2maven3-plugin</artifactId>
    <version>${cargo.plugin.version}</version>
    <configuration>
      <container>
        <containerId>jetty6x</containerId>
        <type>remote</type>
      </container>

      <configuration>
        <type>runtime</type>
        <properties>
          <cargo.hostname>production17</cargo.hostname>
          <cargo.servlet.port>8080</cargo.servlet.port>
          <cargo.remote.username>someusername</cargo.remote.username>
          <cargo.remote.password>somepassword</cargo.remote.password>
        </properties>
      </configuration>

      <deployer>
        <type>remote</type>
      </deployer>

      <deployables>
        <deployable>
          <groupId>test.somegroup</groupId>
          <artifactId>somewar</artifactId>
          <type>war</type>
          <properties>
            <context>/myAppContext</context>
          </properties>
        </deployable>
      </deployables>
    </configuration>
  </plugin>
</plugins>

To run the given Maven2 Maven 3 plugin configuration on a simple Maven2 Maven 3 WAR project, simply execute:

...

Note
titleUnexpected end of file from server and maxIdleTime parameter

By default, Jetty sets theĀ maxIdleTime parameter in theĀ etc/jetty.xml file 30 seconds. This means that if the actual deployment takes more than 30 seconds, you might get error messages like:

Code Block
[ERROR] Failed to execute goal org.codehaus.cargo:cargo-maven2maven3-plugin:1.29.20:deploy (default-cli)
        on project display: Execution default-cli of goal org.codehaus.cargo:cargo-maven2maven3-plugin:1.29.20:deploy
        failed: Failed to deploy [/var/lib/jenkins/workspace/Vanessa-cargo/target/display-1.2.2.1-SNAPSHOT.war]:
        Unexpected end of file from server -> [Help 1]

    ...

Caused by: java.net.SocketException: Unexpected end of file from server
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:767)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1162)
    at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:397)
    at org.codehaus.cargo.container.jetty.JettyRemoteDeployer.getResponseMessage(JettyRemoteDeployer.java:262)
    at org.codehaus.cargo.container.jetty.JettyRemoteDeployer.deploy(JettyRemoteDeployer.java:113)
    ... 25 more

In this case, open the target Jetty container's etc/jetty.xml file and set the maxIdleTime parameter to longer. For example:

Code Block
languagehtml/xml
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">

<Configure id="Server" class="org.mortbay.jetty.Server">
    ...
  <Call name="addConnector">
    <Arg>
      <New class="org.mortbay.jetty.nio.SelectChannelConnector">
          ...
        <!-- Set a longer maxIdleTime (90 seconds in this case) to allow long remote deployments -->
        <Set name="maxIdleTime">90000</Set>
          ...
      </New>
    </Arg>
  </Call>
    ...
</Configure>


...