代码之家  ›  专栏  ›  技术社区  ›  mikeb

将Spring引导jar名称传递给gradlegroovy脚本

  •  0
  • mikeb  · 技术社区  · 6 年前

    我有一个gradle脚本,它在生成SpringBoot jar文件后运行:

    task runScript (dependsOn: 'bootJar', type: JavaExec) {
        main = 'postpackage'
        classpath = sourceSets.main.runtimeClasspath
    }
    

    println "hello world from groovy version ${GroovySystem.version}"
    

    这对我的身材很好。

    gradle运行脚本

    任务:来自groovy 2.4.15版的runScript hello world

    我想要的是:

    println "hello world generated jar file name is ${jarFileName}"
    

    我要做的是传入SpringBoot生成的jar名称,或者 build/libs/my-service-0.1.1.jar 或者不管是什么。

    因此,它将打印:

    我该怎么做?

    postpackage.groovy:

    println "hello world from groovy version ${GroovySystem.version}"
    
    println "hello world from groovy version $bootJar.archiveName"
    

    build.gradle:

    任务运行脚本(dependsOn:'bootJar',类型:JavaExec){
    classpath=sourceset.main.runtimeClasspath
    }
    

    任务:运行脚本失败 来自groovy 2.4.15版的hello world线程“main”中的异常 类别:后包装 位于org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:66)

    2 回复  |  直到 6 年前
        1
  •  1
  •   mjtru    6 年前

    您应该能够将引导jar引用为“jar”。

    打印语句的示例:

    println "hello world from groovy version ${jar.archiveName}"
    
        2
  •  0
  •   mikeb    6 年前

    答复:

    通过build.gradle传递参数,如下所示:

    task runScript (dependsOn: 'bootJar', type: JavaExec) {
        main = 'postpackage'
        classpath = sourceSets.main.runtimeClasspath
        args "${bootJar.archiveName}"
    }
    

    在脚本中引用它,如下所示:

    println "hello world from groovy version ${GroovySystem.version}"
    
    println "hello world from groovy version ${args[0]}"
    

    很好用:

    :bootJar-update:groovy版本2.4.15中的runScript hello-world

    groovy版本my-service-0.1.1.jar中的hello world

    BUILD SUCCESSFUL in 2s
    5 actionable tasks: 1 executed, 4 up-to-date
    12:36:00 PM: Task execution finished 'runScript'.