为 Scala 执行运行任务时,Gradle 失败

Mik*_*a16 3 scala gradle

我创建了一个HelloWorld应用程序,我能够执行构建任务但无法执行运行任务。我收到以下错误:

无法找到或加载主类演示

以下是我的 build.gradle 文件:

apply plugin: 'scala'
repositories{
    mavenCentral()
    mavenLocal()
}
dependencies{
    compile 'org.slf4j:slf4j-api:1.7.5'
    compile "org.scala-lang:scala-library:2.11.2"
    testCompile "junit:junit:4.11"
}
task run(type: JavaExec, dependsOn: classes) {
    main = 'Demo'
}
Run Code Online (Sandbox Code Playgroud)

我的源代码Demo.scala

object Demo {
   def main(args: Array[String]) {
        println("Helo World")
   }
}
Run Code Online (Sandbox Code Playgroud)

我的文件结构:

build
src\main\scala\Demo.scala
build.gradle
Run Code Online (Sandbox Code Playgroud)

我正在使用 gradle 3.0 和 Java 1.8.0_91。在我看来,我缺少一些与classpath相关的设置。任何帮助将不胜感激。

Opa*_*pal 6

您还需要提供classpath。将run任务声明更改为:

task run(type: JavaExec, dependsOn: classes) {
   main = 'Demo'
   classpath = sourceSets.main.runtimeClasspath
}
Run Code Online (Sandbox Code Playgroud)

它会正常工作。演示

打印类路径:

task run(type: JavaExec, dependsOn: classes) {
    main = 'Demo'
    classpath = sourceSets.main.runtimeClasspath
    doFirst {
      classpath.each { println it }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @Mika16,要打印类路径,请参阅我更新的答案。 (2认同)