我创建了一个HelloWorld
应用,我能够执行 build 任务但无法执行运行任务。
我收到以下错误:
无法找到或加载主类演示
以下是我的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和Java 1.8.0_91。 在我看来,我错过了一些与 classpath 相关的设置。 任何帮助将不胜感激。
答案 0 :(得分:4)
您还需要提供classpath
。将run
任务声明更改为:
task run(type: JavaExec, dependsOn: classes) {
main = 'Demo'
classpath = sourceSets.main.runtimeClasspath
}
它会正常工作。 Demo
打印类路径:
task run(type: JavaExec, dependsOn: classes) {
main = 'Demo'
classpath = sourceSets.main.runtimeClasspath
doFirst {
classpath.each { println it }
}
}
答案 1 :(得分:2)
您可以使用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'