Prerequisites
Before you begin, ensure you have:Java 17+
MCReleaser requires Java 17 or higher
Built Artifact
A compiled JAR file ready for distribution
Platform Accounts
Accounts on the platforms where you want to publish
API Tokens
API tokens/keys for each target platform
Step-by-Step Guide
Download MCReleaser
Download the latest
mcreleaser.jar from the GitHub Releases page.Prepare Your Artifact
Build your Minecraft project to generate the JAR file.Your artifact will typically be in:
- Maven:
target/your-plugin-1.0.0.jar - Gradle:
build/libs/your-plugin-1.0.0.jar
Set Up API Tokens
Obtain API tokens from your target platforms. Store them securely as environment variables.
- Linux/macOS
- Windows (PowerShell)
- Windows (CMD)
Run Your First Release
Execute MCReleaser with the required properties. Here’s a complete example:
The
-D flag sets Java system properties. Environment variables use UPPER_SNAKE_CASE, but properties use camelCase (e.g., MODRINTH_TOKEN becomes -DmodrinthToken).Example: Publishing to GitHub Releases
Here’s a practical example of publishing to GitHub Releases:What do these properties mean?
What do these properties mean?
- name: Display name of your artifact
- version: Semantic version (e.g., 1.0.0, 2.1.0)
- description: Short description of this release
- gameVersions: Comma-separated list of supported Minecraft versions
- files: Glob pattern matching files to upload
- platforms: Comma-separated list of target platforms (or “all”)
- githubRepository: Format is
owner/repo - githubRef: Git reference, typically a tag like
refs/tags/v1.0.0
Property Naming Convention
MCReleaser uses a specific naming convention for properties:CLI: Use
-D prefix with camelCase (e.g., -DmodrinthToken)Docker: Use -e with UPPER_SNAKE_CASE (e.g., MODRINTH_TOKEN)Advanced: Publishing to All Platforms
To publish to all supported platforms simultaneously:Sync vs Async Execution
By default, MCReleaser uploads to platforms concurrently (async) for faster execution. You can control this behavior:File Selection
MCReleaser uses glob patterns to select files for upload:Troubleshooting
Missing required properties error
Missing required properties error
Enable property validation to see which properties are missing:This will print all missing required properties for your selected platforms.
No platform found error
No platform found error
This occurs when:
- No platforms are specified (missing
-Dplatforms) - Platform names are misspelled
- Required credentials for all specified platforms are missing
github, modrinth, hangar, polymart, curseforgeFile not found error
File not found error
Check your MCReleaser looks for files relative to the current working directory (where you run the command).
-Dfiles glob pattern:Authentication errors
Authentication errors
Verify your tokens are correctly set:
Next Steps
Platform Configuration
Learn detailed configuration for each platform
Docker Usage
Run MCReleaser in a containerized environment
GitHub Actions
Automate releases with CI/CD
Environment Variables
Complete reference of all available properties