Если ваш java-код использует некоторые внешние библиотеки, такие как Lombok, использование компилятора scala для создания java-класса завершится неудачей, так как компилятор scala не знает аннотации.
Мое решение - изменить зависимости задачи, сделать компиляцию Scala перед Java.
tasks.compileJava.dependsOn compileScala
tasks.compileScala.dependsOn.remove("compileJava")
Теперь задача compileScala
выполняется до compileJava
, вот и все.
Если ваш Java-код зависит от Scala-кода, вам нужно сделать еще два шага,
Разделить выходную папку Scala и Java,
sourceSets {
main {
scala {
outputDir = file("$buildDir/classes/scala/main")
}
java {
outputDir = file("$buildDir/classes/java/main")
}
}
Добавьте вывод scala в качестве зависимости для compileJava
,
dependencies {
compile files("$sourceSets.main.scala.outputDir")
}
Вы должны иметь возможность использовать пути Windows «UNC» с помощью robocopy. Например:
robocopy \\myServer\myFolder\myFile.txt \\myOtherServer\myOtherFolder
Robocopy может автоматически восстанавливаться после определенных типов сбоев в сети.