Setting Up IntelliJ IDEA

This article describes how to configure your IntelliJ IDEA workspace for plugin development with SpongeAPI and a build system such as Maven or Gradle or the Minecraft Development plugin.

If you want to create your project completely from scratch, please skip ahead to the Gradle or Maven sections. Using the Minecraft Dev plugin sets up a working starting point and eliminates some of the guesswork in getting your project off the ground.

Using IDEA Minecraft Dev Plugin to Create a Working Starting Point

The Minecraft Development plugin for IntelliJ is a great plugin by a community member which makes plugin project creation much easier while also providing some neat and useful features for development. By default, it will create a project which uses Gradle as the build tool.

Installing the Minecraft Dev Plugin

This plugin is available on the JetBrains IntelliJ plugin repository.

Because of this, you can install the plugin through IntelliJ’s internal plugin browser. Navigate to File -> Settings -> Plugins and click the Browse Repositories... button at the bottom of the window. In the search box, simply search for Minecraft. You can install it from there and restart IntelliJ to activate the plugin.

Creating Your Project from a Template

  • Open IntelliJ IDEA.

  • Click Create New Project.

  • Select Minecraft in the popup.

  • Make sure your Project SDK is set to some version of Java 8/1.8.

  • Select Sponge plugin for your project type, then click Next.

  • Enter your Group ID, Artifact ID, and Version.

    • Your Group ID should usually correspond to your Java package name. See Main Plugin Class for details.

    • Your Artifact ID should usually correspond to your plugin ID you chose earlier, e.g. myplugin.

    • Your Version is up to you. See Version Numbers for details.

  • Select your desired build tool, either Gradle or Maven, and click Next.

  • Check your Plugin Name and Main Class Name to make sure they are what you want.

  • Specify your desired plugin description, authors, website, and dependencies if you want.

  • Click Next to move on.

  • Verify your project name, location, and module information, then click Finish.

  • The plugin will create a main java file as a starting point, with the logger already injected. You may add a logger.info() statement in the onServerStart event handler to verify that the plugin is working when you run it.

Editing the Project Configuration

Refer to the Gradle or Maven configuration sections, depending on what you chose during project creation.

Creating a Plugin from Scratch – Gradle

  • Open IntelliJ IDEA.

  • Click Create New Project.

  • Select Gradle in the popup.

  • If you want, select any additional libraries and frameworks you desire, for example Kotlin.

  • Make sure your Project SDK is set to some version of Java 8/1.8.

  • Click Next to move on.

  • Enter your Group ID, Artifact ID, and Version.

    • Your Group ID should usually correspond to your Java package name. See Main Plugin Class for details.

    • Your Artifact ID should usually correspond to your plugin ID you chose earlier, e.g. myplugin.

    • Your Version is up to you. See Version Numbers for details.

  • Click Next twice, name your project, and click Finish.

  • The project will be created without a src directory. If you add java files to the incorrect location underneath the project, they will be ignored and not compiled, so it is a good idea to enable the checkbox “Create directories for empty content roots”, found in:

    • Windows: File -> Settings -> Build, Execution, Deployment -> Gradle

    • Mac: Intellij IDEA -> Preferences -> Build, Execution, Deployment -> Build Tools -> Gradle

  • Enabling Use Auto-import in the same location will allow change to the gradle configuration to automatically reload without IDEA prompting you each time.

  • Upon enabling those settings, a /src/main/java directory should be created, where you can start creating your main plugin code files.

Editing the Build Script

  • Open build.gradle in the navigator and add the dependencies.

  • Edit the build script according to the instructions at Setting Up Gradle.

  • Open the Gradle tab on the right of the IntelliJ window and hit the refresh button.

  • Gradle setup is done! Now you can start coding your plugin.

Creating a Plugin from Scratch – Maven

Creating Your Project

  • Open IntelliJ IDEA.

  • Click Create New Project.

  • Select Maven in the popup.

  • Make sure your Project SDK is set to some version of Java 8/1.8.

  • Click Next to move on.

  • Enter your Group ID, Artifact ID, and Version.

    • Your Group ID should usually correspond to your Java package name. See Main Plugin Class for details.

    • Your Artifact ID should usually correspond to your plugin ID you chose earlier, e.g. myplugin.

    • Your Version is up to you. See Version Numbers for details.

  • Click Next.

  • Enter your project’s name, and click Finish.

Editing the Project Configuration

  • Open pom.xml in the navigator.

  • Edit the build configuration according to the instructions at Setting Up Maven.

  • Refresh your Maven project.

  • Import the Maven changes, if prompted.

Testing Your Plugin

The following instructions are a quick way to test your plugin, but won’t be the most efficient way to iteratively develop.

To make a .jar file, using Gradle:

  • Go to View -> Tool Windows -> Gradle

  • Under Tasks -> Build, click on jar

  • The build process should create the jar underneath build\libs

To make a .jar file, using Maven:

  • Go to View -> Tool Windows -> Maven Projects

  • In the Maven Projects window, expand your project’s name

  • Under Plugins, expand jar

  • Double click jar:jar

  • The build process should create the jar underneath target

Copy your jar file to the mods directory of a working Sponge server, then restart the server to test.

For a more efficient development process, see Plugin Debugging for instructions on running both the Sponge server and your plugin from within IDEA. This process allows for hot-swapping, allowing you to change plugin code without restarting the server.

Importing An Existing Project (Gradle or Maven)

If you’ve already started with your project and want to import it again at a later point you need to import it instead of re-creating it inside your IDE:

  • Click File > Open or Import Project.

  • Gradle: Navigate to the project’s build.gradle file and select it.

  • Maven: Navigate to the project’s pom.xml file and select it.

  • Make sure the settings are as you desire and click Ok.

Git Integration

JetBrains offers in-depth documentation on using their Git integration:

https://www.jetbrains.com/help/idea/using-git-integration.html