...
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 |
---|
|
<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 |
---|
title | Unexpected 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 |
---|
| <?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> |
|
...