9

gradle scala 插件将compileScala任务添加到项目中。但有时 scala 编译器可能会报告如下内容:

$ gradle compileScala 
:compileJava UP-TO-DATE 
:compileScala 
[ant:scalac] warning: there were 3 feature warning(s); re-run with -feature for details     
[ant:scalac] one warning found

BUILD SUCCESSFUL

Total time: 21.796 secs

我尝试使用 -feature 重新运行,但 gradle build 抱怨如下:

$ gradle compileScala -feature

FAILURE: Build failed with an exception.

* What went wrong:
Problem configuring task :compileScala from command line.
> Unknown command-line option '-f'.

* Try:
Run gradle help --task :compileScala to get task usage details. Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 4.792 secs

gradle help --task :compileScala 没有提供任何有用的信息。

问题是,当使用 gradle 编译 scala 代码时,如何将 -feature 选项传递给 scala 编译器以查看功能警告?

编辑

以防万一这有用:

$ gradle --version

------------------------------------------------------------
Gradle 1.12
------------------------------------------------------------

Build time:   2014-04-29 09:24:31 UTC
Build number: none
Revision:     a831fa866d46cbee94e61a09af15f9dd95987421

Groovy:       1.8.6
Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013
Ivy:          2.2.0
JVM:          1.7.0_55 (Oracle Corporation 24.55-b03)
OS:           Linux 3.13.0-27-generic amd64

$ scala -version
Scala code runner version 2.10.3 -- Copyright 2002-2013, LAMP/EPFL
4

1 回答 1

16

检查Gradle 构建语言参考ScalaCompile会导致:

compileScala { // or: tasks.withType(ScalaCompile)
    scalaCompileOptions.additionalParameters = ["-feature"]
}

顺便说一下,scalaCompileOptions.useAnt = false会从 Ant 编译器切换到增量式 Zinc 编译器,sbt 也使用这个编译器。

于 2014-05-29T02:54:57.400 回答