繁体   English   中英

具有Kotlin DSL且具有多个主要类别的Gradle应用程序插件

[英]Gradle application plugin with kotlin DSL with multiple main classes

我有一个具有多个主类的Java应用程序,build.gradle用kotlin编写,名为build.gradle.kts

它因错误而失败构建因异常而失败

脚本编译错误:

第50行:task(runSimple,dependsOn:“ classes”,类型:JavaExec){

期待')'

我可以通过使用Gradle应用程序插件中所示的build.gradle来解决问题,该插件具有多个主类

但是团队想和科特琳在一起

apply plugin: 'java'

task(runSimple, dependsOn: 'classes', type: JavaExec) { 
   main = 'com.mrhaki.java.Simple'
   classpath = sourceSets.main.runtimeClasspath
   args 'mrhaki'
   systemProperty 'simple.message', 'Hello '
}

是使用build.gradle并有效的代码,

plugins {
  java 
  application
}

task(runSimple, dependsOn: 'classes', type: JavaExec) {
   main = 'com.mrhaki.java.Simple'
   classpath = sourceSets.main.runtimeClasspath
   args 'mrhaki'
   systemProperty 'simple.message', 'Hello '
}

不起作用

它应该能够运行com.mrhaki.java.Simple类,但不能运行

我猜科特林翻译不正确。

我终于发现使用gradle kotlin dsl执行JavaExec任务 ,这对我有所帮助。 它可以从命令行作为./gradlew runSimple --debug-jvm运行

group = "com.lapots.breed"
version = "1.0-SNAPSHOT"

plugins {
    java
}

java {
    sourceCompatibility = JavaVersion.VERSION_1_8
}

repositories {
    mavenCentral()
}

task("runSimple", JavaExec::class) {
    main = "com.mrhaki.java.Simple"
    classpath = sourceSets["main"].runtimeClasspath
}

如果您还想调试, 则按如下所示修改任务,然后使用./gradlew runSimple进行操作(从gradle中获取):将默认端口更改为5005

不需要--debug-jvm

task("runSimple", JavaExec::class) {
    main = "com.mrhaki.java.Simple"
    classpath = sourceSets["main"].runtimeClasspath

jvmArgs= listOf( "-Xdebug", "-agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=y")
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM