提问者:小点点

执行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'
}

我的源代码Demo. scala:

object Demo {
   def main(args: Array[String]) {
        println("Helo World")
   }
}

我的文件结构:

build
src\main\scala\Demo.scala
build.gradle

我正在使用gradle 3.0和Java1.8。0_91。在我看来,我缺少一些与类路径相关的设置。任何帮助都将不胜感激。


共2个答案

匿名用户

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

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

它会很好地工作。演示。

要打印类路径:

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

匿名用户

您可以使用Gradle应用程序插件,它会自动添加运行任务。然后简单地指定主类:

mainClassName = "Demo"

然后,您build. gradle将如下所示:

apply plugin: 'scala'
apply plugin: 'application'
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"
}


mainClassName = 'Demo'