A Maven plugin for Hytale server plugin development. It provides two goals:
generateManifest— generates amanifest.jsonfor your pluginupdateServerDependency— updates thecom.hypixel.hytale:Serverdependency version in your POM
Add the plugin to your build settings:
<build>
<plugins>
<plugin>
<groupId>io.github.projectunified</groupId>
<artifactId>hytale-manifest-maven-plugin</artifactId>
<version>VERSION</version>
<executions>
<execution>
<goals>
<goal>generateManifest</goal>
</goals>
</execution>
</executions>
<configuration>
<main>dev.hytalemodding.ExamplePlugin</main>
</configuration>
</plugin>
</plugins>
</build>By default, generateManifest runs in the generate-resources phase.
Note
If you want to quickly create your project, you can fork this template
Generates a manifest.json file and places it in the build output directory so
it is included in the final JAR.
| Name | Property | Description | Default |
|---|---|---|---|
group |
hytale.manifest.group |
The group ID of the plugin | ${project.groupId} |
name |
hytale.manifest.name |
The display name of the plugin | ${project.name} |
version |
hytale.manifest.version |
The version of the plugin | ${project.version} |
description |
hytale.manifest.description |
A short description of the plugin | ${project.description} |
website |
hytale.manifest.website |
The plugin's website URL | ${project.url} |
main |
hytale.manifest.main |
Fully-qualified entry-point class (required) | |
authors |
List of authors (see Authors) | Project developers + contributors |
|
serverVersion |
hytale.manifest.serverVersion |
Server version compatibility (see Server Version) | * |
patchline |
hytale.manifest.patchline |
Patchline: RELEASE or PRERELEASE (see Patchline) |
RELEASE |
dependencies |
Required plugin dependencies (see Dependencies) | ||
optionalDependencies |
Optional plugin dependencies | ||
loadBefore |
Plugins to load before this one | ||
disabledByDefault |
hytale.manifest.disabledByDefault |
Whether the plugin is disabled by default | false |
includesAssetPack |
hytale.manifest.includesAssetPack |
Whether the plugin includes an asset pack | false |
outputDirectory |
hytale.manifest.outputDirectory |
Output directory for the manifest file | ${project.build.directory}/classes |
If no authors are explicitly configured, the Mojo falls back to the project's
<developers> and <contributors>.
<authors>
<author>
<name>Author Name</name>
<email>author@email.com</email>
<url>https://author.website</url>
</author>
</authors>The dependencies, optionalDependencies, and loadBefore parameters each
accept a list of entries with:
name— the dependency plugin name (required)version— the required version (required, use*for any)
<dependencies>
<dependency>
<name>dependency-name</name>
<version>1.0.0</version>
</dependency>
</dependencies>If serverVersion is set to LATEST or RELEASE (case-insensitive), the
actual version is resolved at build time from the Hytale Maven repository
metadata.
<configuration>
<main>com.example.MyPlugin</main>
<serverVersion>RELEASE</serverVersion>
</configuration>The patchline parameter controls which Maven repository is queried:
| Value | Repository URL |
|---|---|
RELEASE |
https://maven.hytale.com/release/com/hypixel/hytale/Server/maven-metadata.xml |
PRERELEASE |
https://maven.hytale.com/pre-release/com/hypixel/hytale/Server/maven-metadata.xml |
<configuration>
<main>com.example.MyPlugin</main>
<serverVersion>RELEASE</serverVersion>
<patchline>PRERELEASE</patchline>
</configuration>Updates the com.hypixel.hytale:Server dependency version in a POM file. This
goal is not bound to any lifecycle phase — invoke it manually:
mvn hytale-manifest:updateServerDependency| Name | Property | Description | Default |
|---|---|---|---|
serverVersionType |
hytale.server.versionType |
Which version to fetch: LATEST or RELEASE |
RELEASE |
pom |
hytale.server.pom |
Path to the POM file to update | ${project.basedir}/pom.xml |
propertyName |
hytale.server.propertyName |
If set, update this <properties> entry instead of the dependency version |
|
patchline |
hytale.server.patchline |
Patchline: RELEASE or PRERELEASE |
RELEASE |
Update the dependency version directly:
mvn hytale-manifest:updateServerDependencyUpdate a Maven property instead (e.g. when the dependency uses
${hytale.server.version}):
mvn hytale-manifest:updateServerDependency -Dhytale.server.propertyName=hytale.server.versionFetch the latest version instead of the latest release:
mvn hytale-manifest:updateServerDependency -Dhytale.server.versionType=LATESTUse the pre-release patchline:
mvn hytale-manifest:updateServerDependency -Dhytale.server.patchline=PRERELEASE