我正在尝试设置 IntelliJ 2017.2 以使用 Gradle 4.2.1 与我的 Play 2.6 应用程序一起使用。
我还安装了 IntelliJ 的 Scala 插件。
经过数小时筛选各种博客和指南后,我创建了一个看起来像这样的 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 无法正确找到我的所有资源。
如果我尝试在项目设置中手动添加内容(例如“app”目录),我的更改会通过 Gradle 刷新重置。
我也尝试过使用 Gradle 配置,例如“为每个源集创建单独的模块”,但它并没有太大帮助。
我知道这不是典型的设置,因为大多数人在 Play 中使用 SBT,但不幸的是,由于 Gradle 是工作中的标准,我们暂时坚持这样做。有没有人对 IntelliJ 2017、Gradle 4.2 和 Play 2.6 的设置感到幸运?