【发布时间】:2019-04-13 21:04:44
【问题描述】:
我有一个在 SpringBoot jar 文件生成后运行的 gradle 脚本:
task runScript (dependsOn: 'bootJar', type: JavaExec) {
main = 'postpackage'
classpath = sourceSets.main.runtimeClasspath
}
到目前为止,gradle 脚本只是打印了一条消息:
println "hello world from groovy version ${GroovySystem.version}"
这在我的构建中运行良好。
gradle runScript
任务 :runScript hello world 从 groovy 版本 2.4.15
我想要的是这样的:
println "hello world generated jar file name is ${jarFileName}"
我要做的是传入 SpringBoot 生成的 jar 名称,或者 build/libs/my-service-0.1.1.jar 中的 jar 名称或任何它。
所以它会打印:
hello world生成的jar文件名为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:
task runScript (dependsOn: 'bootJar', type: JavaExec) {
main = 'postpackage'
classpath = sourceSets.main.runtimeClasspath
}
这是错误:
任务:运行脚本失败 来自 groovy 版本 2.4.15 的 hello world 线程“main”中的异常 groovy.lang.MissingPropertyException:没有这样的属性:bootJar for 类:邮包 在 org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:66)
【问题讨论】:
-
你可以像
bootJar{ archiveName = project.property('theFileName') }一样配置bootJar任务,然后使用命令行参数:./gradlew -PtheFileName="the-target-name.jar" -
我添加的正是我要查找的内容
-
然后试试
println "hello world generated jar file name is $bootJar.archiveName" -
Exception in thread "main" groovy.lang.MissingPropertyException: No such property: bootJar for class: postpackage -
查看编辑 - 我使用了
$bootJar.archiveName和${$bootJar.archiveName}