【发布时间】:2012-10-25 23:55:04
【问题描述】:
我有以下 scala 编译问题
- scala -> 依赖于 java 源代码
java 源 -> 依赖于 scala 源
我的 scala 代码在 src/main/scala
- 我的 java 代码在 src/main/java 中
我无法更改此代码,因此我需要使用 gradle 编译它,它目前可以使用 JRuby 编译。
我已阅读以下有关如何解决此问题的帖子:
我将此添加到我的构建中:
ext {
baseName = 'd2'
description = 'Divisional IVR.'
combinedSources = "$buildDir/combined-sources"
}
apply plugin: 'scala'
compileScala.taskDependencies.values = compileScala.taskDependencies.values - 'compileJava'
compileJava.dependsOn compileScala
sourceSets.main.scala.srcDir "$combinedSources"
sourceSets.main.java.srcDirs = []
我尝试将所有 scala 和 java 文件复制到一个位置:
compileScala.dependsOn{
copyAllSourceFiles
}
task copyAllSourceFiles(type:Copy) {
description = 'Copy All Source Files.'
from('src/main/java') {}
from('/src/main/scala') {}
into combinedSources
includeEmptyDirs = false
}
但现在我得到一个错误:
[ant:scalac] Compiling 18 source files to C:\usr\git_workspaces\xivr\d2\target\classes\main
[ant:scalac] Compiling 18 scala and 196 java source files to C:\usr\git_workspaces\xivr\d2\target\classes\main
[ant:scalac] C:\usr\git_workspaces\xivr\d2\target\combined-sources\com\comcast\ivr\d2\actors\AlternateAniWithAccountActor.scala:9: error: AlternateAniWithAccountActor is already defined as class AlternateAniWithAccountActor
似乎 scalaCompile 看到了 $combinedSources 和 'src/main/scala'
【问题讨论】: