Я пытаюсь настроить IntelliJ 2017.2 для работы с моим приложением Play 2.6 с помощью Gradle 4.2.1.
У меня также установлен плагин Scala для IntelliJ.
После нескольких часов просмотра различных блогов и руководств я создал файл build.gradle, который выглядит так, что должно было помочь:
plugins {
id 'play'
id 'idea'
}
model {
components {
play {
platform play: '2.6.6', scala: '2.11'
injectedRoutesGenerator = true
}
}
}
idea {
module {
sourceDirs += project.file('app')
testSourceDirs += project.file('test')
project.file("${project.buildDir}/src/play/binary").listFiles().each {
if (it.name.endsWith('ScalaSources')) {
sourceDirs += it
generatedSourceDirs += it
}
}
outputDir = project.file("${project.buildDir}/playBinary/classes")
testOutputDir = project.file("${project.buildDir}/playBinary/testClasses")
scopes.COMPILE = [plus: [configurations.play], minus: []]
scopes.RUNTIME = [plus: [configurations.playRun], minus:[configurations.play]]
scopes.TEST = [plus: [configurations.playTest], minus: [configurations.playRun]]
sourceDirs += project.file('conf')
testSourceDirs += project.file('test/resources')
}
}
dependencies {
// dependencies...
}
Основная проблема, с которой я сталкиваюсь, заключается в том, что IntelliJ не может правильно найти все мои источники.
Если я попытаюсь вручную добавить что-то в настройки проекта (скажем, для каталога «приложение»), мои изменения будут сброшены при обновлении Gradle.
Я также пробовал играть с конфигурациями Gradle, такими как «Создать отдельный модуль для каждого исходного набора», но это не очень помогло.
Я знаю, что это не типичная установка, так как большинство людей используют SBT с Play, но, к сожалению, пока мы застряли на этом, поскольку Gradle является стандартом в работе. Кому-нибудь повезло с этой настройкой IntelliJ 2017, Gradle 4.2 и Play 2.6?