How to Compile Plugins Faster With IntelliJ?

Discussion in 'Programming' started by Scholler, Jun 18, 2019.

Thread Status:
Not open for further replies.
  1. So currently, I have both Eclipse and IntelliJ IDEA on my computer. I like IntelliJ idea because it's soo smooth so actually I like coding with it, but what I hate is it is hard and takes so long to export a minecraft plugin. With Eclipse, I need to type a lot more there (IntelliJ autocompletes literally everything, even the things in plugin.yml) but I can actually export a lot easier and faster.

    So I don't know which IDE I should use. Or is there a way to configure IntelliJ to export/compile my plugins faster?
     
  2. MiniDigger

    Supporter

    not sure how you do exporting, but if you use maven or gradle (like you definitely should), the process is exactly the same for both intellij and eclipse (altho intellij has better integration for maven and gradle)

    not sure what you find hard in intellij, if you comment on a specific thing I might be able to provide tips.


    so yeah, I would suggest using intellij and using maven for "exporting".
     
    • Agree Agree x 1
  3. Okay, is it easy to export with Maven?
    And.. What I find hard, is I need to click on Project Structure, create artifacts, select the compiler output and manually add the plugin.yml and config.yml, and then Build, build artifacts, and it also takes long. In Eclipse, I just click on Export, export as jar, specify the directory and it will export it fast
    So, about maven, can you link me a fast tutorial how to do it? (Because I am not reading long stuff how to use it, I may just use the current way to export)
     
  4. try different ones and pick the one YOU like. They all do pretty much the same thing.
     
  5. MiniDigger

    Supporter

    https://www.spigotmc.org/wiki/creating-a-plugin-with-maven-using-intellij-idea/
     
  6. If you want it to be as fast as possible, you can use a combination of gradle, the intellij “Run Configuration as Action” plugin, a spigot jar application configuration, and a dcevm modified jvm.

    To be more specific, gradle allows you to specify jar output directories (unlike maven), allowing you to output directly to your spigots plugin folder. You can then use the plugin I mentioned to map this build task to a keybind, personally I use ctrl + b. Then, I have a configuration in intellij that starts a spigot instance using a dcevm jvm. I start this in debug mode, using shift + F9. DCEVM is a necessity here, as it allows for much broader hotswap capabilities than the vanilla jvm, removing one extra step of restarting the server everytime you change the code.

    In a nutshell, this configuration allows you to build and start your spigot server, in as little as two keybinds and no button clicks or mouse movement; the pinnicle of lazyness (or efficiency?). Then, as an addon, it allows you to save even more precious wrist/arm & finger movement, by allowing you to hotswap code without restarting the server.
     
  7. uhh So I always made small plugins. I know my level and I will start making bigger projects, but.. Not that big.
    So thank you, but I will use maven.
     
    • Like Like x 1
  8. I can recommend IntellIJ. If you are a student you can unlock the Student Package of JetBrains where you get IntellIJ Ultimate for free and some other software products. I mean it is not necessary for just developing MC Plugins but maybe you want to learn more?
     
  9. I like eclipse better because you can control when you auto complete by typing ctrl + space. Also, for me everything runs faster
     
    • Optimistic Optimistic x 1
  10. you can simply configure your key mapping to do anything....
    your IDE won't make your java compiler run faster... (-‸ლ)
     
  11. Choco

    Moderator

    I've edited the thread title, clarified the OP and will lock this thread to avoid bickering between IDE choices (https://www.spigotmc.org/threads/lets-talk-ides-psa.334992/). The OP seems to have found a solution,
    Thread locked.
     
Thread Status:
Not open for further replies.