首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将名称传递给Gradle Groovy脚本

将名称传递给Gradle Groovy脚本
EN

Stack Overflow用户
提问于 2018-11-10 07:02:26
回答 2查看 915关注 0票数 0

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
task runScript (dependsOn: 'bootJar', type: JavaExec) {
    main = 'postpackage'
    classpath = sourceSets.main.runtimeClasspath
}

到目前为止,gradle脚本只是打印了一条消息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
println "hello world from groovy version ${GroovySystem.version}"

这在我的身材中很好用。

分级runScript 任务: groovy版本2.4.15中的runScript hello world

我想要的是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
println "hello world generated jar file name is ${jarFileName}"

我想要做的是传递SpringBoot生成的jar名称,或者在build/libs/my-service-0.1.1.jar中传递jar的名称或其他任何内容。

所以它会打印:

hello生成的jar文件名是my-service-0.1.1.jar

我怎么能这么做?

以下是我尝试过的:

postpackage.groovy:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
println "hello world from groovy version ${GroovySystem.version}"

println "hello world from groovy version $bootJar.archiveName"

build.gradle:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
task runScript (dependsOn: 'bootJar', type: JavaExec) {
    main = 'postpackage'
    classpath = sourceSets.main.runtimeClasspath
}

以下是错误:

任务:runScript失败的hello来自线程“groovy.lang.MissingPropertyException”中的线程"main“groovy.lang.MissingPropertyException: bootJar for class: postpackage中的异常

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-10 09:38:11

答案:

这样通过build.gradle传递参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
task runScript (dependsOn: 'bootJar', type: JavaExec) {
    main = 'postpackage'
    classpath = sourceSets.main.runtimeClasspath
    args "${bootJar.archiveName}"
}

在脚本中引用它如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
println "hello world from groovy version ${GroovySystem.version}"

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

效果很好:

:bootJar最新版本: groovy版本2.4.15中的runScript hello world 你好,来自groovy版本my 0.1.1.jar 在2s 5可操作的任务中成功构建:1已执行,4最新12:36 PM:任务执行完成了“runScript”。

票数 0
EN

Stack Overflow用户

发布于 2019-03-06 10:22:51

您应该能够将bootjar引用为"jar“。

打印语句示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
println "hello world from groovy version ${jar.archiveName}"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53240211

复制
相关文章
【Android Gradle 插件】Gradle 构建工具简介 ③ ( Gradle 构建脚本编程语言 | Groovy 语言简介 | Groovy 语言特性 )
Gradle 构建工具 的 构建脚本 可以使用 Groovy 语言 或 Kotlin 语言 进行编写 ,
韩曙亮
2023/03/30
9300
Gradle之Groovy
在某种程度上,Groovy 可以被视为 Java 的一种脚本化改良版,Groovy 也是运行在 JVM 上,它可以很好地与 Java 代码及 其相关库进行交互操作。它是一种成熟的面向对象编程语言,既可以面向对象编程,又可以用作纯粹的脚本语言。大多 数有效的 Java 代码也可以转换为有效的 Groovy 代码,Groovy 和 Java 语言的主要区别是:完成同样的任务所需的 Groovy 代码比 Java 代码更少。其特点为:
鱼找水需要时间
2023/02/16
1.3K0
Gradle之Groovy
【Groovy】Groovy 脚本调用 ( Groovy 脚本编译 | Groovy 脚本字节码文件分析 )
Groovy 脚本编译后生成的是 groovy.lang.Script 类 ; 该类继承自 GroovyObjectSupport 类 ;
韩曙亮
2023/03/30
2K0
【Groovy】Groovy 脚本调用 ( Linux 中调用 Groovy 脚本 | Windows 中调用 Groovy 脚本 )
在 命令行 , Groovy 脚本 , Groovy 类 , Java 类中 , 可以调用 Groovy 脚本 ;
韩曙亮
2023/03/30
2K0
【Groovy】Groovy 脚本调用 ( Java 类中调用 Groovy 脚本 )
Java 类中调用 Groovy 脚本 , 与 Groovy 类中调用 Groovy 脚本 , 代码基本类似 ;
韩曙亮
2023/03/30
1.9K0
【Groovy】Groovy 脚本调用 ( Java 类中调用 Groovy 脚本 )
Gradle-Groovy语法
Groovy 是一种基于 JVM 的动态语言,他的语法和 Java 相似,最终也是要编译 .class 在JVM上运行。
佛系编码
2019/12/11
1.6K0
Gradle-Groovy语法
【Groovy】Groovy 脚本调用 ( Groovy 类中调用 Groovy 脚本 | 创建 GroovyShell 对象并执行 Groovy 脚本 | 完整代码示例 )
首先 , 创建 GroovyShell 对象 , 在构造函数中 , 需要传入 Binding 对象 ;
韩曙亮
2023/03/30
1.8K0
【Groovy】Groovy 脚本调用 ( Groovy 类中调用 Groovy 脚本 | 创建 GroovyShell 对象并执行 Groovy 脚本 | 完整代码示例 )
【Groovy】Groovy 脚本调用 ( Groovy 脚本中调用另外一个 Groovy 脚本 | 调用 evaluate 方法执行 Groovy 脚本 | 参数传递 )
在 【Groovy】Groovy 脚本调用 ( Groovy 脚本编译 | Groovy 脚本字节码文件分析 ) 博客中 , 已经分析了 Groovy 脚本的本质 , Groovy 脚本继承了 groovy.lang.Script 类 ;
韩曙亮
2023/03/30
1.9K0
【Groovy】Groovy 脚本调用 ( Groovy 脚本中调用另外一个 Groovy 脚本 | 调用 evaluate 方法执行 Groovy 脚本 | 参数传递 )
【Groovy】Groovy 脚本调用 ( 命令行执行 Groovy 脚本并传入参数 | 获取 Groovy 脚本执行参数 )
在 Groovy 脚本 , Groovy 类 , Java 类中 , 可以调用 Groovy 脚本 ;
韩曙亮
2023/03/30
2.2K0
【Groovy】Groovy 脚本调用 ( 命令行执行 Groovy 脚本并传入参数 | 获取 Groovy 脚本执行参数 )
Gradle+Groovy提高篇
在这里,Configure project任务将生成并运行生成脚本。在Gradle执行Configure project任务时,它会执行以下操作:
FunTester
2019/12/17
6710
认识groovy脚本
大家好,我是小利。今天分享一个工作中常用的脚本语言,就是Groovy脚本,下面就简单的介绍一下。
找Bug
2023/09/22
7870
认识groovy脚本
Gradle+Groovy基础篇
在Java项目中,有两个主要的构建系统:Gradle和Maven。构建系统主要管理潜在的复杂依赖关系并正确编译项目。还可以将已编译的项目以及所有资源和源文件打包到.war或.jar文件中。对于简单的构建,Maven和Gradle之间的选择几乎是个人喜好之一,或者也许是公司CTO或技术经理的偏好。他们俩都是非常好的构建工具。但是,对于更复杂的项目,Gradle比Maven更胜一筹。
FunTester
2019/12/17
2.1K0
【Groovy】Groovy 脚本调用 ( Groovy 脚本中的作用域 | 本地作用域 | 绑定作用域 )
在 Groovy 脚本中 , 定义两个变量 , 一个使用 def 声明 , 一个直接声明变量 ;
韩曙亮
2023/03/30
1.3K0
【Groovy】Groovy 脚本调用 ( Groovy 脚本中的作用域 | 本地作用域 | 绑定作用域 )
【Android Gradle 插件】Android Module 模块 build.gradle 构建脚本 Groovy 语法分析 ① ( Gradle 二进制插件引入 | Gradle依赖配置 )
在 Gradle 脚本中引入二进制插件是常见的用法 , 如 Android 中的 build.gradle 插件引入 ;
韩曙亮
2023/03/30
5530
Gradle 构建脚本
Gradle提供了一种领域特定语言,目前同时支持 Groovy 和 Kotlin 。
佛系编码
2019/12/11
9040
Gradle 构建脚本
Groovy反射invokeMethod传参实践
最近在做分布式性能测试拓展的过程,其中一个思路就是通过Groovy反射执行方法。但是在创建groovy.lang.GroovyObject对象之后,通过调用groovy.lang.GroovyObject#invokeMethod方法执行类方法的时候遇到一个问题,就是groovy.lang.GroovyObject#invokeMethod只有两个参数,一个是String name方法名,另外一个是Object args方法参数。
FunTester
2021/05/07
1.2K0
使用groovy脚本使gradle灵活加载本地jar包的两种方式
本人在使用Jenkins做测试项目的可持续集成过程中,构建工具用的gradle,但由于一些jar包是并私有仓库给用,暂时没有搭建计划。这就导致了我构建项目的时候需要的jar的地址往往是不一样的,而且服务器和本地的版本可能也有所差别,经常其他同学提交代码时候把build.gradle文件一并提交了,倒是仓库文件比较乱。为了解决这个问题,看了一些资料再研究了一点点gradle的使用后总结了两种方法。
FunTester
2019/08/27
1.6K0
【Groovy】Groovy 脚本调用 ( Groovy 脚本中调用另外一个 Groovy 脚本 | 绑定作用域 binding 变量分析 | Binding 类 variables 成员分析 )
分析 groovy.lang.Script 类的 evaluate 方法源码 , 在该方法中 , 创建了一个 GroovyShell 对象 ;
韩曙亮
2023/03/30
1.2K0
【Groovy】Groovy 脚本调用 ( Groovy 脚本中调用另外一个 Groovy 脚本 | 绑定作用域 binding 变量分析 | Binding 类 variables 成员分析 )
Android Gradle 设置导出APK的名称
在 app moudle 中打开 build.gradle 找到配置 android{...}
码客说
2019/10/22
1.4K0
【Groovy】Groovy 脚本调用 ( Groovy 类中调用 Groovy 脚本 | 参考 Script#evaluate 方法 | 创建 Binding 对象并设置 args 参数 )
可以参考 groovy.lang.Script 类的 evaluate 方法 , 通过 GroovyShell 在类方法中调用 Groovy 脚本 ;
韩曙亮
2023/03/30
2K0

相似问题

从Gradle运行Groovy脚本

20

Gradle:将复制任务从groovy转换为kotlin gradle脚本

12

将groovy变量传递给shell脚本

715

从gradle中运行groovy脚本

250

将参数传递给gradle构建脚本

115
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文