java - 将 Spring Boot jar 名称传递给 Gradle Groovy 脚本
问题描述
我有一个在生成 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 名称,或其中的 jar 名称或其他名称build/libs/my-service-0.1.1.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"
构建.gradle:
task runScript (dependsOn: 'bootJar', type: JavaExec) {
main = 'postpackage'
classpath = sourceSets.main.runtimeClasspath
}
这是错误:
任务:runScript FAILED hello world from groovy 版本 2.4.15 线程“主”groovy.lang.MissingPropertyException 中的异常:没有此类属性:类的 bootJar:org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap 的 postpackage(ScriptBytecodeAdapter.java: 66)
解决方案
您应该能够将 bootjar 引用为“jar”。
您的打印语句示例:
println "hello world from groovy version ${jar.archiveName}"
推荐阅读
- javascript - 如何用javascript替换函数替换字符串第一个之后的所有句点?
- three.js - 如何放大光线投射器选择?
- reactjs - 每当我将 id 从孩子发送给父母时,我都会变得不确定,我可以知道我错过了什么吗?
- android - Google Play 商店无法上传带有“被 CORS 策略阻止”错误的应用程序图标
- javascript - 带有提示符和 || 的 if/else 语句
- java - 文档中的数组未映射到 java pojo 对象中的列表
- kendo-ui - 剑道工具提示仅在第二个“悬停”事件后显示
- python - 如何计算 Django 的总工作时间?
- excel - VBA隐藏/取消隐藏活动单元格下方的3行
- c# - 名称“locBox 不存在”