RESTEasy is a Commonhaus project aimed at providing productivity frameworks for developing client and server RESTful applications and services in Java. It is mainly a Jakarta RESTful Web Services implementation, but you’ll find some other experimental code in the repository.
The project page can be found at https://resteasy.dev.
RESTEasy is a Commonhaus project that provides various frameworks to help you build RESTful Web Services and RESTful Java applications. It is a portable implementation of the Jakarta RESTful Web Services specification. The Jakarta RESTful Web Services provides a Java API for RESTful Web Services over the HTTP protocol. Please note that the specification is now under the Jakarta EE Project. You can read the entire specification at Jakarta RESTful Web Services.
-
Read a book
-
Check out the examples in the repository.
-
Read the documentation.
-
View the blogs.
To read the documentation you can read it online.
Issues are kept in JIRA.
Currently, RESTEasy requires JDK 17+.
If you want to build the project without running the tests, you need to pull down a clone of the RESTEasy repository and run:
$ ./mvnw clean install -DskipTests=trueIf you want to build the project with testings run, you may need to specify a profile to use, and may need to configure the WildFly version you want to run the tests with. Here is an example:
$ SERVER_VERSION=27.0.0.Final ./mvnw clean -fae -Dserver.version=$SERVER_VERSION installYou are most welcome to contribute to RESTEasy!
Read the Contribution guidelines
Releasing the project requires permission to deploy to Maven Central see Maven Central Release Requirements.
Once everything is setup, you simply need to run the ./release.sh script. There are two required parameters:
-
-ror--releasewhich is the version you want to release -
-dor--developmentwhich is the next development version.
By default, the release version cannot contain SNAPSHOT and the development version must contain SNAPSHOT.
The release.sh script automates the entire release process:
-
Maven Release: Executes
mvn release:prepareandrelease:performto build, tag, and deploy artifacts to Maven Central -
GitHub Release: Automatically creates a GitHub release with generated release notes (requires gh CLI)
-
Artifact Upload: Uploads distribution ZIPs to the GitHub release
-
Documentation Publishing: Automatically publishes documentation to https://github.com/resteasy/resteasy.github.io by invoking
./publish-docs.sh
All of these steps are automated. If successful, you’ll see confirmation messages for each step:
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 14:17 min
[INFO] Finished at: 2025-09-18T16:03:43-07:00
[INFO] ------------------------------------------------------------------------
GitHub release created successfully.
Release artifacts uploaded successfully.
Publishing documentation:
Documentation published successfully.|
Note
|
The documentation publishing step creates a pull request to https://github.com/resteasy/resteasy.github.io automatically. You’ll need to review and merge that PR to finalize the documentation update. |
-
--dry-run- Executes the release process without pushing any changes (useful for testing) -
--prerelease- Marks the GitHub release as a prerelease -
--notes-start-tag <tag>- Specifies the starting tag for generating release notes -
--verbose- Prints verbose output -
--force- Allows SNAPSHOT in release version (not recommended)
-
GitHub CLI (gh) - Required for automated GitHub release creation and documentation PR
-
Maven Central credentials configured in
~/.m2/settings.xml -
Write access to the resteasy.github.io repository (for documentation publishing)
If the automated process fails or you need to perform steps manually:
|
Important
|
When manually executing Maven commands, enable the release profile with -Prelease and the
central-release profile with -Pcentral-release. These can be combined with -Prelease,central-release.
|
Manual GitHub release:
gh release create --generate-notes --latest --verify-tag v7.0.1.Final
gh release upload v7.0.1.Final distribution/target/distribution/resteasy-7.0.1.Final-all.zip \
distribution/src-distribution/target/distribution/resteasy-7.0.1.Final-src.zipManual documentation publishing:
./publish-docs.sh --version 7.0.1.Final \
--docs-repo ../resteasy.github.io \
--dist-zip distribution/target/distribution/resteasy-7.0.1.Final-all.zipThe publish-docs.sh script extracts documentation from the distribution ZIP, creates a branch in the documentation
repository, commits the changes, and creates a pull request automatically.