Не удается настроить окружение

Версия Minecraft
1.12.2
83
4
23
День добрый. Ранее, я работал только с Eclipse, но решил перейти на IDEA и столкнулся с морем проблем.
Я загрузил MDK 1.12.2, импортировал его как Gradle-проект, но появилась ошибка о несовместимости версии Gradle и Java в IDEA.

Bash:
Cannot determine classpath for resource 'java/sql/SQLException.class' from location 'jrt:/java.sql/java/sql/SQLException.class'.

The project uses Gradle 2.14 which is incompatible with IDEA running on Java 10 or newer.
See details at https://github.com/gradle/gradle/issues/8431
Possible solution:
 - Upgrade Gradle wrapper to 4.8.1 version and re-import the project
Я обновил Gradle, но столкнулся с другой проблемой. gradlew genIntellijRuns вызывает NPE:

Bash:
:genIntellijRuns
java.lang.NullPointerException
        at net.minecraftforge.gradle.common.Constants.addXml(Constants.java:297)
        at net.minecraftforge.gradle.user.UserBasePlugin.injectIntellijRuns(UserBasePlugin.java:1305)
        at net.minecraftforge.gradle.user.UserBasePlugin$14.execute(UserBasePlugin.java:1213)
        at net.minecraftforge.gradle.user.UserBasePlugin$14.execute(UserBasePlugin.java:1176)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:621)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:604)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:66)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
        at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
        at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
        at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
        at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
        at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:153)
        at org.gradle.internal.Factories$1.create(Factories.java:22)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:150)
        at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:83)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:99)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:48)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
        at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:81)
        at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:46)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:40)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:237)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
        at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

BUILD SUCCESSFUL

Total time: 1 mins 44.883 secs

Я пробовал очищать gradle cache, создавал новый проект, удалял директории .gradle и .idea в проекте и загружал другую версию MDK. Ничего из этого не помогло.

Gradle version:

Код:
------------------------------------------------------------
Gradle 2.14
------------------------------------------------------------

Build time:   2016-06-14 07:16:37 UTC
Revision:     cba5fea19f1e0c6a00cc904828a6ec4e11739abc

Groovy:       2.4.4
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_242 ( 25.242-b08)
OS:           Windows 10 10.0 amd64
 
Решение
7,099
324
1,510
В 1.12 нужно сначала выполнить gradlew setupDecompWorkspace, и только потом импортировать в ide
Используй gradle wrapper, что поставляется вместе с mdk, он прекрасно работает

Хотел было порекомендовать статью из учебника(Использование Idea - MC Modding Учебник), но именно в ней советуют сначала импортировать, а потом выполнить команду :m_faceplam:

Правильные шаги описаны тут: https://github.com/MinecraftForge/Documentation/blob/1.12.x/docs/gettingstarted/index.md
Там тоже указан вариант Terminal-free IntelliJ IDEA configuration как опциональный, но он работает видимо не на всех версиях idea, у меня стал работать только с 1.13
 
83
4
23
Ничего не поменялось. Я использовал сначала setupDecompWorkspace, затем импортировал проект, и потом genIntellijRuns. Всё так же NullPointerException. Почему то мне кажется что это из-за Java и gradle wrapper'а, попробую как-нибудь изменить версию на Java 8.
 
83
4
23
Решена проблема с The project uses Gradle 2.14 which is incompatible with IDEA running on Java 10 or newer.

Итак, в запущенной IDEA жмём CTRL+SHIFT+A, вводим в появившемся окне "Choose Runtime". Выбираем самый первый пункт. Откроется окно, в котором в выпадающем меню нужно выбрать любой jbsdk8u_*, нажимаем Install. IDEA перезапуститься. Done.

Но проблема с NullPointerException никуда не делась.
 

will0376

Токсичная личность
2,070
55
581
Чуть проще мог бы поступить. Плагин Minecraft Development - Plugins | JetBrains Он сам за тебя всю среду поднимет и выполнит genIntellijRuns.
Для заметки: используй 4,0+ грабли и 8 жабу(можешь еще и DCEVM поставить для хотсвапа)
 
83
4
23
С ним другая проблема.
setupDecompWorkspace -
Код:
> Configure project :
This mapping 'stable_39' was designed for MC 1.12! Use at your own peril.

[QUOTE] Task :extractUserdev FAILED[/QUOTE]

FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all files for configuration ':forgeGradleUserDevPackage'.
[QUOTE] Could not find net.minecraftforge:forge:1.12.2-14.v8.99.5033.[/QUOTE]
  Searched in the following locations:
    - https://files.minecraftforge.net/maven/net/minecraftforge/forge/1.12.2-14.v8.99.5033/forge-1.12.2-14.v8.99.5033.pom
    - https://files.minecraftforge.net/maven/net/minecraftforge/forge/1.12.2-14.v8.99.5033/forge-1.12.2-14.v8.99.5033-userdev.jar
    - https://repo.maven.apache.org/maven2/net/minecraftforge/forge/1.12.2-14.v8.99.5033/forge-1.12.2-14.v8.99.5033.pom
    - https://repo.maven.apache.org/maven2/net/minecraftforge/forge/1.12.2-14.v8.99.5033/forge-1.12.2-14.v8.99.5033-userdev.jar
    - https://libraries.minecraft.net/net/minecraftforge/forge/1.12.2-14.v8.99.5033/forge-1.12.2-14.v8.99.5033.pom
    - https://libraries.minecraft.net/net/minecraftforge/forge/1.12.2-14.v8.99.5033/forge-1.12.2-14.v8.99.5033-userdev.jar
    - https://repo.maven.apache.org/maven2/net/minecraftforge/forge/1.12.2-14.v8.99.5033/forge-1.12.2-14.v8.99.5033.pom
    - https://repo.maven.apache.org/maven2/net/minecraftforge/forge/1.12.2-14.v8.99.5033/forge-1.12.2-14.v8.99.5033-userdev.jar
    - file:/C:/Users/Admin/.gradle/caches/minecraft/deobfedDeps/net/minecraftforge/forge/1.12.2-14.v8.99.5033/forge-1.12.2-14.v8.99.5033.pom
    - file:/C:/Users/Admin/.gradle/caches/minecraft/deobfedDeps/net/minecraftforge/forge/1.12.2-14.v8.99.5033/forge-1.12.2-14.v8.99.5033-userdev.jar
    - file:/C:/Users/Admin/.gradle/caches/minecraft/net/minecraftforge/forge/1.12.2-14.v8.99.5033/stable/39/forge-1.12.2-14.v8.99.5033-userdev.jar
    - file:/C:/Users/Admin/.gradle/caches/minecraft/net/minecraftforge/forge/1.12.2-14.v8.99.5033/stable/39/forge-userdev.jar
  Required by:
      project :

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 9s
4 actionable tasks: 4 executed
 

will0376

Токсичная личность
2,070
55
581
7,099
324
1,510
Сверху