Allure Maven Plugin
April 16, 2026 ยท View on GitHub
Allure Maven Plugin
This plugin generates Allure Report from allure-results.
- Requires JDK 17 or newer
- Learn more about Allure Report at https://allurereport.org
- ๐ Documentation โ discover official documentation for Allure Report
- โ Questions and Support โ get help from the team and community
- ๐ข Official annoucements โ be in touch with the latest updates
- ๐ฌ General Discussion โ engage in casual conversations, share insights and ideas with the community
Getting Started
- Add following lines into your
pom.xmlbuild 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.4.1 3.x: Allure 32.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.4.1</reportVersion>
</configuration>
</plugin>
Or from the command line:
mvn -Dreport.version=2.39.0 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 runtimeallure-3.4.1: installed Allure 3 packagebin/allureorbin/allure.bat: generated launcher used by the plugin
Relevant Allure 3 parameters:
allure.install.directoryallure.node.versionallure.node.download.urlallure.npm.registryallure.package.pathallure.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.
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.jsallurerc.mjsallurerc.cjsallurerc.jsonallurerc.yamlallurerc.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(trueby default) - scope:
allure:reportonly;allure:aggregateandallure:servekeep their current behavior - Allure 2: the plugin restores the previous
history/directory from${allure.install.directory}/history/report/historyinto a temporary input directory before generation, then refreshes the cache from the newly generated report - Allure 3: the plugin sets default
historyPathandappendHistory=truevalues 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:
allure generate <resultsDirs...> --config <generated config>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.