Allure Maven Plugin

September 16, 2026 ยท View on GitHub

Allure Maven Plugin

Build release-badge

This plugin generates Allure Report from allure-results.

Allure Report logo


Getting Started

  • Add following lines into your pom.xml build section:
<plugin>
	<groupId>io.qameta.allure</groupId>
	<artifactId>allure-maven</artifactId>
	<version>2.12.0</version>
</plugin>
  • mvn clean test - run your tests

You can generate a report using one of the following command:

  • mvn allure:serve

Report will be generated into temp folder. Web server with results will start.

  • mvn allure:report

Report will be generated tะพ directory: target/site/allure-maven/index.html

Configuration

Selecting the runtime

By default, the plugin uses Allure 3.

reportVersion selects the runtime family:

  • blank or unset: Allure 3 3.17.0
  • 3.x: Allure 3
  • 2.x: Allure 2 commandline

You can configure the version in the plugin configuration:

<plugin>
	<groupId>io.qameta.allure</groupId>
	<artifactId>allure-maven</artifactId>
	<version>2.12.0</version>
	<configuration>
		<reportVersion>3.17.0</reportVersion>
	</configuration>
</plugin>

Or from the command line:

mvn -Dreport.version=2.46.1 allure:report

Allure 3 runtime provisioning

For Allure 3, the plugin provisions a private Node.js runtime and installs the Allure 3 package into the plugin cache. It does not require a system-wide Node.js installation.

Default cache layout under ${project.basedir}/.allure:

  • node-v24.14.1-<os>-<arch>: private Node.js runtime
  • allure-3.17.0: installed Allure 3 package
  • bin/allure or bin/allure.bat: generated launcher used by the plugin

Relevant Allure 3 parameters:

  • allure.install.directory
  • allure.node.version
  • allure.node.download.url
  • allure.npm.registry
  • allure.package.path
  • allure.config.path

allure.package.path is an optional local .tgz or .tar.gz archive that is installed instead of allure@<reportVersion>. This is mainly useful for tests and custom local package builds.

Downloading Node.js from a mirror

allure.node.download.url accepts a complete Node.js archive URL or a URL template. In a template, the four %s placeholders are replaced with the Node.js version, the Node.js version again, the platform classifier (for example, linux-x64), and the archive extension (tar.gz or zip). The plugin does not append a version or archive filename to a repository root URL.

For a mirror of the Node.js distribution directory:

mvn allure:report \
  '-Dallure.node.download.url=https://nexus.example.com/repository/nodejs/v%s/node-v%s-%s.%s' \
  -Dallure.npm.registry=https://nexus.example.com/repository/npmjs_registry/

The plugin downloads SHASUMS256.txt from the same directory as the configured archive. The mirror must provide this file with the matching archive checksum; missing or incorrect checksums stop installation.

Allure 2 compatibility

Allure 2 remains available when reportVersion is set to a 2.x release.

The Allure 2-specific allure.download.url customization still applies only to the Allure 2 ZIP flow. It is rejected for Allure 3.

Allure 3 config support

For Allure 3, the plugin supports:

  • auto-detected project-root config files:
    • allurerc.js
    • allurerc.mjs
    • allurerc.cjs
    • allurerc.json
    • allurerc.yaml
    • allurerc.yml
  • explicit config via allure.config.path

JSON/YAML configs are merged into a generated config file, while JS/MJS/CJS configs are wrapped so the plugin can still overlay the report output, report name, and singleFile setting.

Trend history for allure:report

The report goal preserves trend history automatically by default.

  • configure it with allure.history.enabled (true by default)
  • scope: allure:report only; allure:aggregate and allure:serve keep their current behavior
  • Allure 2: the plugin restores the previous history/ directory from ${allure.install.directory}/history/report/history into a temporary input directory before generation, then refreshes the cache from the newly generated report
  • Allure 3: the plugin sets default historyPath and appendHistory=true values that point to ${allure.install.directory}/history/report/history.jsonl; explicit values in your Allure 3 config still win

Allure 3 serve behavior

For Allure 3, allure:serve performs:

  1. allure generate <resultsDirs...> --config <generated config>
  2. allure open <reportDir> --config <generated config>

allure.serve.port is supported for Allure 3.

allure.serve.host is not supported for Allure 3. Use reportVersion 2.x if host binding is required.

Additional information can be found on official website.