使用 gradle kotlin dsl执行 JavaExec 任务



我创建了简单的build.gradle.kts文件

group  = "com.lapots.breed"
version = "1.0-SNAPSHOT"
plugins { java }
java { sourceCompatibility = JavaVersion.VERSION_1_8 }
repositories { mavenCentral() }
dependencies {}
task<JavaExec>("execute") {
main = "com.lapots.breed.Application"
classpath = java.sourceSets["main"].runtimeClasspath
}

src/main/java/com.lapots.breed我用main方法创建了Application

package com.lapots.breed;
public class Application {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}

但是当我尝试执行execute任务时,它失败了,并出现任务不存在的错误。此外,当我使用gradlew tasks列出所有可用任务时,它根本不显示execute任务。

问题出在哪里?

以下构建脚本应该可以工作(Gradle4.10.2,Kotlin DSL1.0-rc-6(:

group = "com.lapots.breed"
version = "1.0-SNAPSHOT"
plugins {
java
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
}
repositories {
mavenCentral()
}
task("execute", JavaExec::class) {
main = "com.lapots.breed.Application"
classpath = sourceSets["main"].runtimeClasspath
}

根据未列出的任务 - 从某些版本开始,Gradle不会显示未分配AbstractTask.group的自定义任务。您可以通过gradle tasks --all列出它们,也可以在给定任务上设置group属性,例如:

task("execute", JavaExec::class) {
group = "myCustomTasks"
main = "com.lapots.breed.Application"
classpath = sourceSets["main"].runtimeClasspath
}

最新更新