我有和申请有
fun main() {} 内部测试/kotlin/com.Company/LocalApplication.kt
我使用它在localhost中运行,例如,使用IntelliJ,我只需单击run函数就可以启动我的应用程序。
里面的函数是什么,测试它为localhost生成一个自定义的args配置,然后调用真正的main/com.company/Application.kt
因此,我想在build.gradle.kts中为kotlin创建一个任务,当我在那个有趣的main()上手动单击运行时,这个任务和Intellij完全一样。
例如,在终端中这样做:
gradle localhost并且该命令调用fun () {} inside /kotlin/com.Company/LocalApplication.kt,并使用localhost配置启动我的应用程序。
谢谢你们
发布于 2020-02-08 17:51:20
让我们假设这个非常基本的应用程序App.kt
package com.company
class App {
val greeting: String
get() {
return "Hello world."
}
}
fun main(args: Array<String>) {
println(App().greeting)
}您可以使用JavaExec任务类型。
定义JavaExec类型的自定义任务
tasks.register<JavaExec>("localhost") {
classpath = sourceSets.test.get().runtimeClasspath
main = "com.company.LocalApplication"
}然后,您需要更新您的LocalApplication.kt以使用@file:JvmName
@file:JvmName("LocalApplication")
package com.company
fun main(args: Array<String>) {
println(App().greeting)
}然后在我的终端中运行任务会产生:
$ ./gradlew localhost
> Task :localhost
Hello world.
BUILD SUCCESSFUL in 4s
3 actionable tasks: 3 executedJavaExec任务还有更多的选项,请阅读文档以获得更多信息。
经以下测试:
------------------------------------------------------------
Gradle 6.1.1
------------------------------------------------------------
Build time: 2020-01-24 22:30:24 UTC
Revision: a8c3750babb99d1894378073499d6716a1a1fa5d
Kotlin: 1.3.61
Groovy: 2.5.8
Ant: Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM: 11.0.6 (AdoptOpenJDK 11.0.6+10)
OS: Mac OS X 10.15.3 x86_64https://stackoverflow.com/questions/60124269
复制相似问题