我一直在尝试为我公司的 Java/Scala 项目切换到 IntelliJ 和 Gradle。从命令行来看,Gradle 非常棒,但是在将 Gradle 与 IntelliJ 以及具有 Scala 方面的项目一起使用时,我遇到了问题。
我已经尝试以两种方式导入项目,唯一能让 Scala 方面工作的方法是运行:
gradle idea
使用 Gradle IDEA 插件。在那之后,我需要做的就是打开项目的ipr文件,项目工作正常。
但是,我想在 IntelliJ 中为各种事情运行一些 Gradle 任务(代码生成是最大的任务)。我希望能够使用 JetGradle 来运行这些任务。问题是当我将 Gradle 项目链接到 JetGradle 时,每个项目中的依赖关系都会破坏 Scala 方面的编译器设置。
这是一个多模块项目。这是父级的build.gradle:
allprojects {
apply plugin: 'idea'
version = '1.0'
group = 'company-x'
repositories {
mavenCentral()
}
}
这是 scala 模块的build.gradle:
apply plugin: 'scala'
dependencies {
compile 'org.scala-lang:scala-library:2.10.1',
'org.scala-lang:scala-reflect:2.10.1',
'org.scala-lang:scala-compiler:2.10.1',
'org.slf4j:slf4j-log4j12:1.7.2',
'com.typesafe.akka:akka-actor_2.10:2.1.4'
testCompile 'junit:junit:4.8.1',
'org.scalatest:scalatest:1.2'
}
在将项目链接到 JetGradle 之前,使用名为“scala-compiler-2.10.1”的库设置 Scala 方面,其中包含 Scala 编译器、库和反射 jar 和 src。链接项目后,项目库将替换为所有 Gradle 项目依赖项。Scala方面然后给出错误:
Compiler library: no scala-library*.jar found
当我再次查看这些库时,仍然有一个名为“scala-compiler-2.10.1”的库,但它只是编译器。图书馆和反射罐子现在被分开了。
有没有人想出如何让 Scala 方面和 JetGradle 相互配合?