可以在IntelliJ 12中使用JetGradle以及具有Scala构面的Gradle生成的项目文件吗?

时间:2013-06-05 18:04:25

标签: scala intellij-idea gradle

我一直在努力为我公司的Java / Scala项目切换到IntelliJ和Gradle。从命令行Gradle一直很好,但是当使用带有IntelliJ的Gradle和使用Scala方面的项目时,我遇到了一个问题。

我尝试过以两种方式导入项目,而且我能够让Scala方面工作的唯一方法是运行:

gradle idea

使用Gradle IDEA插件。之后,我需要做的就是打开项目的ipr文件,项目工作正常。

但是,我想在IntelliJ中运行一些Gradle任务来处理各种事情(代码生成是最大的)。我希望能够使用JetGradle来运行这些任务。问题是当我将Gradle项目链接到JetGradle时,每个项目中的依赖项都会破坏Scala facet的编译器设置。

这是一个多模块项目。以下是父级的 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 facet设置了一个名为“scala-compiler-2.10.1”的库,其中包含Scala编译器,库和反射jar和src。链接项目后,项目库将替换为所有Gradle项目依赖项。 Scala方面然后给出错误:

Compiler library: no scala-library*.jar found

当我再次查看这些库时,仍然有一个名为“scala-compiler-2.10.1”的库,但它只是编译器。库和反射罐现在已经分开了。

有没有人想出如何让Scala facet和JetGradle相互搭配得很好?

1 个答案:

答案 0 :(得分:1)

从这个IntelliJ博客(Better Gradle Support in IntelliJ IDEA 12.1)看来JetGradle似乎还没有准备好支持Scala。 我正在等待IntelliJ 13.x并暂时坚持使用Maven。