Changes to IntelliJ IDEA configuration

keturn

New Member
Oh hello forum! We merged a significant change to the developer set-up process this week. Thought it might be worth a post to give a heads-up to those of you who didn't hear about it on Discord.

For quite a while now, the guides on how to set up IntelliJ IDEA for Terasology development have said “Do not import the gradle project! Run gradlew idea instead!”

Now it is just the opposite: please do have IntelliJ import the Gradle project, and you do not need to run gradlew idea.

See #3954 and its follow-up #3974 if you want all the messy details, but the technical highlights are:

  • Works with IntelliJ IDEA version 2020.1 (and newer, hopefully).
  • The project no longer uses the old .ipr file format. It uses the .idea/ directory instead.
  • We are keeping much of that directory in version control; it is not git ignored. I wrote a bunch about the merits and pitfalls of version-controlled .idea. I could cross-post that to this forum or the wiki if that would be useful.
  • It works with JDK 11. Using JDK 8 for Terasology development is still supported, but this configuration assumes that you're using 11, and IDEA even has a download-a-JDK option built-in that can help with that.
I think those are the most important highlights. If you're attached to your current configuration, you probably want to back up your Terasology.ipr and Terasology.iws files.

I think we've caught all the places that talked about gradlew idea on the wiki. I still have some ambitions about freshening up the docs on preparing a development workspace, but I think the current version is at least not-misleading.

I'm not entirely sure what the best migration path is if you do want to merge in your prior workspace settings. I expect it's something like this:

  • back up ipr and iws
  • upgrade to IntelliJ IDEA 2020.1 if you haven't yet
  • Use the "Save as directory based format" action in the file menu. That will make the .idea/ directory with your settings.
  • back up that, so you have a backup of the directory-based settings
  • pull changes from git, merge its configuration directory with yours
  • Import Gradle Project if you haven't yet
If you run in to conflicts with files in that config directory, do ping me on Terasology discord or in a GitHub issue and let me know. I expect we'll need to continue to tune the ignore files a bit.

Pleasure onward, my associates!
 

bmpcardoso

New Member
Hi keturn,

I followed the instructions here, and I was able to run Terasology from IntelliJ. However, I cannot start the game with the Core Gameplay template... I tried "groovyw module init", but also did not work. All I'm getting is a "Module dependency resolution failed" error message when I try to update the Core Gameplay module before lauching the game.

I'm running IntelliJ 2020.2, SDK 11.

Thanks a lot - Terasology IS awesome!
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Hey there :)

By "when I try to update the Core Gameplay module before lauching the game. " do you mean you used the in-game module downloader? There's something keeping it from using the very latest modules for some reason, so that likely could lead to the problem you describe.

What happens with "groovyw module init" or maybe try "groovyw module init iota" ?

If you've ended up with "bad" modules in your modules directory you might want to clear it out (except the gradle file) with your IDE closed, then try one of those commands or even "groovyw module recurse CoreSampleGameplay" - let us know here or on Discord what error that results in, as it really should work, if it doesn't we need to fix it :)

After you've got valid modules in your workspace you can try it without IntelliJ to rule that out by running "gradlew jar game" to see if the game will load and let you run CoreSampleGameplay
 
Top