Download
Citrus 4.5.2 is the latest stable release . Citrus is available on Maven central repository so you can add Citrus as a Maven dependency to your project.
Maven
You can easily use Citrus in a Maven project by adding the Citrus modules as test-scoped dependencies in your pom.xml
.
Citrus provides a Maven BOM or “Bill Of Materials” that controls the versions and available modules that you can add to your project.
<dependency>
<groupId>org.citrusframework</groupId>
<artifactId>citrus-bom</artifactId>
<version>4.5.2</version>
<scope>import</scope>
</dependency>
Now you can add individual Citrus modules to your project. Each module represents a specific features and capability in Citrus.
As an example the following modules enable you to send and receive messages via Http REST, Kafka and JMS.
<dependency>
<groupId>org.citrusframework</groupId>
<artifactId>citrus-http</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.citrusframework</groupId>
<artifactId>citrus-kafka</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.citrusframework</groupId>
<artifactId>citrus-jms</artifactId>
<scope>test</scope>
</dependency>
In case you want to use the Apache Camel or Testcontainers functionality provided in Citrus you may add these modules.
<dependency>
<groupId>org.citrusframework</groupId>
<artifactId>citrus-camel</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.citrusframework</groupId>
<artifactId>citrus-testcontainers</artifactId>
<scope>test</scope>
</dependency>
You can write Citrus test as YAML files using a domain specific language. To use this feature in Citrus add the following module:
<dependency>
<groupId>org.citrusframework</groupId>
<artifactId>citrus-yaml</artifactId>
<scope>test</scope>
</dependency>
Validation of received messages is an essential part of the test. Citrus provides a powerful set of different message validators for different message data formats.
As an example the following modules add validation capabilities for Json, Xml and plaintext.
<dependency>
<groupId>org.citrusframework</groupId>
<artifactId>citrus-validation-json</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.citrusframework</groupId>
<artifactId>citrus-validation-xml</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.citrusframework</groupId>
<artifactId>citrus-validation-text</artifactId>
<scope>test</scope>
</dependency>
You can choose from a huge list of modules that all add individual Citrus capabilities to your test.
Release artifacts
All available versions and production releases for manual download are listed below:
Version | Release date | Sources |
---|---|---|
4.5.2 | 2025-01-25 | zip/tar.gz |
4.5.1 | 2025-01-20 | zip/tar.gz |
4.5.0 | 2024-12-11 | zip/tar.gz |
4.4.0 | 2024-11-15 | zip/tar.gz |
4.3.3 | 2024-10-02 | zip/tar.gz |
4.3.2 | 2024-09-11 | zip/tar.gz |
4.3.1 | 2024-08-15 | zip/tar.gz |
4.3.0 | 2024-08-14 | zip/tar.gz |
4.2.1 | 2024-05-17 | zip/tar.gz |
4.2.0 | 2024-03-25 | zip/tar.gz |
4.1.1 | 2024-01-25 | zip/tar.gz |
4.1.0 | 2024-01-17 | zip/tar.gz |
Since Citrus 4.0 the project requires Java 17 (or newer version) to run.
Logging framework notice
We use SLF4J as logging abstraction framework, which means that you as a user are not forced to use a specific logging implementation. SLF4J is similar to commons-logging, so you may use whatever logging framework you want to. All you have to do is add an SLF4J logging implementation to your classpath.
In case you are currently using log4j2 as logging framework just include slf4j-log4j12.jar
on your classpath and Citrus
will use log4j2
too. If you want to use some other framework than please see the SLF4J documentation for help.