Troubleshooting

NoSuchMethodError in IntelliJ IDEA or when running Spoofax build

There may be a JAR version conflict, as IntelliJ and JPS use their own versions of certain common JARs (e.g. Apache’s Commons IO) and those may get loading priority.

To fix this, go to the dependencies project (in deps/) and edit the build.gradle file. In the shadowJar section, add a new relation from the original package to the new package (usually the same package name prefixed with intellij.):

relocate 'org.apache.commons.io', 'intellij.org.apache.commons.io'

Now, whenever you want to use a class from that package you have to use the new package name. The build script will take care of renaming usages of the package in the dependencies.

Note

Rebuild the dependencies project.

./gradlew clean publishToMavenLocal