【问题标题】:Gradle application plugin with kotlin DSL with multiple main classes带有多个主类的 kotlin DSL 的 Gradle 应用程序插件
【发布时间】:2019-09-10 17:45:41
【问题描述】:

我有一个包含多个主类的 java 应用程序,build.gradle 是用 kotlin 编写的,名为 build.gradle.kts

失败并出现错误构建失败并出现异常

脚本编译错误:

第 50 行:task(runSimple, dependsOn: "classes", type: JavaExec) {

期待')'

Gradle application plugin with multiple main classes所示,我可以使用build.gradle解决问题

但团队希望留在 kotlin

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 类但不能运行

我猜kotlin翻译不正确。

【问题讨论】:

    标签: java gradle kotlin groovy dsl


    【解决方案1】:

    我终于找到了execute JavaExec task using gradle kotlin dsl,这对我很有帮助。它可以从命令行运行 ./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
    }
    
    【解决方案2】:

    如果您还想调试,请按如下方式修改任务并使用 ./gradlew runSimple 运行,取自 gradle: change default port from 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")
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-17
      • 2019-07-10
      • 1970-01-01
      • 2018-06-01
      • 2021-10-18
      • 2021-12-16
      • 1970-01-01
      相关资源
      最近更新 更多