Gradle Scala 插件


本文整理自网络,侵删。

Scala 插件

Scala 的插件继承自 Java 插件并添加了对 Scala 项目的支持。它可以处理 Scala 代码,以及混合的 Scala 和 Java 代码,甚至是纯 Java 代码(尽管我们不一定推荐使用)。该插件支持联合编译,联合编译可以通过 Scala 及 Java 的各自的依赖任意地混合及匹配它们的代码。例如,一个 Scala 类可以继承自一个 Java 类,而这个 Java 类也可以继承自一个 Scala 类。这样一来,我们就能够在项目中使用最适合的语言,并且在有需要的情况下用其他的语言重写其中的任何类。

用法

要使用 Scala 插件,请在构建脚本中包含以下语句:

使用 Scala 插件

build.gradle

apply plugin: 'scala'  

任务

Scala 的插件向 project 中添加了以下任务。

表 25.1. Scala 插件 - 任务

任务名称 依赖于 类型 描述
compileScala compileJava ScalaCompile 编译production 的 Scala 源文件。
compileTestScala compileTestJava ScalaCompile 编译test 的 Scala 的源文件。
SourceSetScala SourceSetJava ScalaCompile 编译给定的source set 里的 Scala 源文件。
scaladoc - scaladoc 为production 里的 Scala 源文件生成 API 文档。

Scala 插件向 Java 插件所加入的 tasks 添加了以下的依赖。

表 24.2. Scala 感觉 插件 - 额外的 task 依赖

任务名称 依赖于
classes compileScala
testClasses compileTestScala
sourceSetClasses SourceSetScala

图 25.1. Scala 插件-任务

项目布局

Scala 插件会假定如下所示的项目布局。所有 Scala 的源目录都可以包含 Scala和Java 代码。Java 源目录只能包含 Java 源代码。这些目录不一定是存在的,或是里面包含有什么内容;Scala 插件只会进行编译,而不管它发现什么。

表 25.3. Scala 插件 - 项目布局

目录 意义
src/main/java 产品的Java源代码
src/main/resources 产品的资源
src/main/scala Production Scala 源代码。此外可能包含联合编译的 Java 源代码。
src/test/java Java 测试源代码
src/test/resources 测试资源
src/test/scala Test Scala 源代码。此外可能包含联合编译的 Java 源代码。
sourceSet/java 给定的源集的Java源代码
sourceSet/resources 给定的源集的资源
sourceSet/scala 给定的source set 的 Scala 源代码。此外可能包含联合编译的 Java 源代码。

更改项目布局

和 Java 插件一样,Scala 插件允许把 Scala 的 production 和 test 的源文件配置为自定义的位置。

自定义 Scala 源文件布局

build.gradle

sourceSets {
    main {
        scala
            srcDirs = ['src/scala']
        }
    }
    test {
        scala
            srcDirs = ['test/scala']
        }
    }
}  

依赖管理

Scala 项目需要声明一个 scala-library 依赖项。这个依赖会在编译和运行的类路径时用到。它还将用于分别获取 Scala 编译器及 Scaladoc 工具。

如果 Scala 用于 production 代码, scala-library 依赖应该添加到 compile 的配置中:

为production 代码定义一个Scala 依赖

build.gradle

repositories {
    mavenCentral()
}
dependencies {
    compile 'org.scala-lang:scala-library:2.9.1'
}  

如果 Scala 仅用于测试代码, scala-library 依赖应被添加到 testCompile 配置中:

为 test 代码定义一个Scala 依赖

build.gradle

dependencies {
    testCompile "org.scala-lang:scala-library:2.9.2"
}  

scalaClasspath 的自动配置

ScalaCompile 和 ScalaDoc tasks 会以两种方式使用 Scala: 在它们的 classpath 以及scalaClasspath 上。前者用于在源代码中查找类的引用,通常会包含 scala-library 和其他库。后者用来分别加载和执行 Scala 编译器和 Scala 工具,并且应该只包含 scala-library及其依赖项。

阅读剩余部分

相关阅读 >>

Gradle 编写构建脚本

Gradle Gradle 插件

Gradle sonar runner 插件

Gradle jacoco 插件

Gradle ear 插件

Gradle jdepend 插件

Gradle Gradle 守护进程

Gradle 使用 Gradle 图形用户界面

Gradle java 构建入门

Gradle java 插件

更多相关阅读请进入《Gradle》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...