Independent extensions:

RSS Feeds


Pages and Blog posts
Mailing list

Java API

Cargo offers primarily a Java API. It is meant to be embedded in your application. You'll need Java SE version 8 or greater.

You have two choices to pick from the Downloads page:

  • the cargo-core-api-* jars and the container implementations you wish to use (cargo-core-container-* jars)
  • or the cargo-core-uberjar jar which aggregates all the required jars

Cargo's base dependencies are as follows:

Security issues with older versions of Apache Ant

As documented in CVE-2020-1945, Apache Ant versions 1.1 to 1.9.14 and 1.10.0 to 1.10.7 use the default temporary directory identified by the Java system property java.io.tmpdir for several tasks and may thus leak sensitive information. Moreover, the fixcrlf and replaceregexp tasks copy files from the temporary directory back into the build tree allowing an attacker to inject modified source files into the Codehaus Cargo container configuration generation process, a security issue still existing in Apache Ant 1.9.15 and 1.10.8.

We hence strongly recommend only using Apache Ant version 1.9.16 and above (if you need to stick to the Apache Ant 1.9.x branch), or Apache Ant version 1.10.9 and above in general.

In addition, some specific containers (for example, JRun or WildFly / WildFly Swarm) and some deployables (for example, Tomcat WARs) require the following:

Apache Ant

If you want use the Cargo Ant tasks, add the following JARs to Ant's classpath:

  • The same jars as for the Java API (i.e., either the API JARs + the container(s) or the uberjar)
  • The cargo-ant JAR, containing the <taskdef> definition (see the Ant support page)

Apache Maven 3

Maven 3 will automatically download all required dependencies: see the Maven 3 Plugin page. As a result, no installation is required for Maven 3.

If you are creating a Java applications which use the Cargo via API, you need to add as dependency either the artifact for your favorite container or the uberjar (which contains all containers). See below

Example for adding the Codehaus Cargo uberjar as dependency
<dependency>
  <groupId>org.codehaus.cargo</groupId>
  <artifactId>cargo-core-uberjar</artifactId>
  <version>${cargo.version}</version>
</dependency>
Example for adding the Codehaus Cargo Tomcat container as dependency
<dependency>
  <groupId>org.codehaus.cargo</groupId>
  <artifactId>cargo-core-container-tomcat</artifactId>
  <version>${cargo.version}</version>
</dependency>
Copyright 2004-2021. All rights reserved unless otherwise noted.
Click here to read our privacy and cookie policy