jrebel gradle_JRebel适用于Gradle Spring Boot应用程序

jrebel gradle

关于如何将JRebel添加到使用Gradle作为构建工具的Spring Boot应用程序中,有一些文档 。 它是基本的,但是效果很好。

您所要做的就是在build.gradle中添加几行:

if (project.hasProperty('rebelAgent')) {bootRun.jvmArgs += rebelAgent
}

然后在gradle.properties中设置属性:

rebelAgent=-agentpath:[path/to/JRebel library]

但是,有几种方法可以对此进行改进。

使JRebel成为可选

例如,如果您每次使用' bootRun'启动应用程序时都不总是想要JRebel怎么办? 像Intellij IDEA这样的IDE的JRebel插件足够聪明,可以让您选择是否使用JRebel来运行您的应用程序

这样做有几种方法,但是一种方法是在可选任务中添加JRebel启动配置。

task addRebelAgent << {if (project.hasProperty('rebelAgent')) {bootRun.jvmArgs += rebelAgent}elseprintln 'rebelAgent property not found'
}task rebelRun(dependsOn: ['addRebelAgent', 'bootRun'])

现在运行“ bootRun”将正常启动该应用程序,如果要使用JRebel,请改用“ rebelRun”任务。 如果'rebelAgent'属性不可用,我还添加了一条调试消息。

另一种方法是将可选属性传递给“ bootRun”任务,以用作是否添加JRebel的标志。

if (project.hasProperty('rebelAgent') &&project.hasProperty('addJRebel')) {bootRun.jvmArgs += rebelAgent
}

然后,要使用JRebel,您只需添加多余的属性。

gradle bootRun -PaddJRebel = true

寻找叛军基地

在属性文件中放置JRebel库的路径以用作代理,可使多个开发人员拥有自己的版本。 但是,路径仍然是硬编码的,如果可能的话,应该避免这种情况。

指定路径的另一种方法是使用系统环境变量指向JRebel的安装位置。 JetBrains建议使用REBEL_BASE 。 设置好之后,您就可以通过多种方式使用环境变量,例如Gradle构建文件,命令行,构建脚本等。

这是一个示例,该示例使用了我之前在Windows 64计算机上使用的其他“ addRebelAgent”任务。

task addRebelAgent << {project.ext {rebelAgent = "-agentpath:${System.env.REBEL_BASE}${rebelLibPath}"}if (project.hasProperty('rebelAgent')) {bootRun.jvmArgs += rebelAgent}elseprintln 'rebelAgent property not found'
}task rebelRun(dependsOn: ['addRebelAgent', 'bootRun'])

在gradle.properties中,我从JRebel安装位置指定了到代理库的路径。

rebelLibPath=\\lib\\jrebel64.dll

我在这里所做的只是在REBEL_BASE环境变量的'rebelAgent'属性中构建路径,以及在另一个指定库内部路径的属性中构建路径。

rebelAgent = "-agentpath:${System.env.REBEL_BASE}${rebelLibPath}"

翻译自: https://www.javacodegeeks.com/2018/02/jrebel-gradle-spring-boot-app.html

jrebel gradle

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333805.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vim 的寄存器/剪贴板

文章目录 一、查看寄存器查看所有的寄存器查看指定的寄存器二、各种寄存器介绍无名寄存器(默认寄存器)命名寄存器复制专用寄存器逐级临时缓存寄存器。行内删除寄存器黑洞寄存器表达式寄存器文件名寄存器搜索模式寄存器命令行寄存器插入寄存器轮换缓冲区寄存器系统剪贴板选择和…

Python中的lambda表达式

lambda表达式被用于创建匿名函数。匿名函数就是没有名字的函数。 返回类型是函数类型。 作用&#xff1a;一行就可以表示一个函数&#xff0c;使代码简洁。很适合只使用一次的函数。 语法 lambda 参数:表达式等价于 def 函数名(参数)&#xff1a;return 表达式举例 无参函数…

华为的型号命名规则_华为Mate 40 Pro+ 外观曝光 正面双挖孔 背部奥利奥

近日关于华为Mate 40 Pro的消息&#xff0c;又有了新进展。有媒体曝光出了一组Mate 40 Pro 的外观渲染图。华为Mate 40系列将会有三种型号&#xff0c;分别是华为Mate 40&#xff0c;Mate 40 Pro 和Mate 40 Pro &#xff0c;这与之前发布的华为 P40 系列是相同的型号命名规则。…

drools 执行函数_Drools可执行模型还活着

drools 执行函数总览 可执行模型的目的是提供规则集的纯基于Java的表示&#xff0c;以及方便的Java DSL以编程方式创建这种模型。 该模型是低级的&#xff0c;旨在为用户提供所需的所有信息&#xff0c;例如用于索引评估的lambda。 这样可以使其保持快速运行&#xff0c;并避免…

vim 底行命令模式的正则表达式(匹配模式)

文章目录一、vim 替换表达式的语法格式二、vim 关于 range 的表达式三、vim 关于 flags 的元字符四、vim 关于数量的元字符五、环视和固化分组六、vim 替换表达式的示例&#xff08;一&#xff09;结合 copy 命令使用&#xff08;二&#xff09;结合 move 命令使用&#xff08;…

navicat模型显示注释_RetinaNet模型构建面罩检测器

字幕组双语原文&#xff1a;如何使用RetinaNet模型构建面罩检测器英语原文&#xff1a;How to build a Face Mask Detector using RetinaNet Model!翻译&#xff1a;雷锋字幕组&#xff08;李珺毅&#xff09;介绍目标检测是计算机视觉中一个非常重要的领域&#xff0c;对于自动…

python中parse.add_argument()简单用法

argparse模块简单使用流程以及与命令行的交互1.导入模块2.创建解析器3.添加参数4.解析参数5使用参数完整代码与命令行的交互argparse 模块是 Python 内置的一个用于命令项选项与参数解析的模块。下面以例子来简单记下模块使用流程。1.导入模块 import argparse2.创建解析器 该…

java最好学习的方法_学习Java的最佳方法

java最好学习的方法Java是有些人可能说很难学习的语言之一&#xff0c;而其他人则认为它与其他语言具有相同的学习曲线。 两种观察都是正确的。 但是&#xff0c;由于Java具有平台无关性&#xff0c;因此在语言方面具有相当大的优势。 Java是一种低级语言&#xff0c;它以一种…

什么是整数

整数&#xff08;integer&#xff09;是正整数、零、负整数的集合。 整数的全体构成整数集&#xff0c;整数集是一个数环。在整数系中&#xff0c;零和正整数统称为自然数。-1、-2、-3、…、-n、…&#xff08;n为非零自然数&#xff09;为负整数。则正整数、零与负整数构成整数…

镜像电流源特点_模电中的电流源电路

在模电中&#xff0c;电流源电路也称恒流源电路&#xff0c;经常作为放大电路中的偏置电路(即为放大电路提供合适的静态工作点的电路)、有源负载以及电压-电流转换电路等。在一些名牌大学的期末考试或研究生入学考试中&#xff0c;也经常出一道和恒流源相关的题。不同学校的教材…

java改变变量编码方式_Java 10将如何改变您的编码方式

java改变变量编码方式突出显示Java 10中新的Java局部变量类型推断功能 早在2016年&#xff0c;Java社区就掀起了新的JDK增强提案&#xff08;JEP&#xff09;&#xff1a; JEP 286 。 现在&#xff0c;两年后&#xff0c;局部变量类型推断可以说是Java 10中最值得注意的功能。…

vim 批量注释技巧

文章目录一、块选择模式批量注释取消注释二、替换命令批量注释取消注释一、块选择模式 批量注释 Ctrl v 进入块选择模式&#xff0c;然后移动光标选中你要注释的行&#xff0c;再按大写的 I 进入行首插入模式输入注释符号如 // 或 #&#xff0c;输入完毕之后&#xff0c;按 …

深度学习Pytorch--梯度与反向传播笔记

Pytorch梯度与反向传播相关概念导数偏导数方向导数梯度梯度下降法自动求梯度概念Tensor反向传播求梯度相关概念 先来理解一下从导数到梯度的相关概念。 导数 一元函数中导数就是该函数所代表的曲线在这一点上的切线斜率。 多元函数的导数可以称为全导数&#xff0c;可以得到…

工业机器人打磨抛光编程员工资_一种工业机器人打磨抛光工作平台的制作方法...

本实用新型涉及工业机器人领域&#xff0c;具体是一种工业机器人打磨抛光工作平台。背景技术&#xff1a;随着手机的使用量逐年增加&#xff0c;人们对手机外观的要求越来越高&#xff0c;手机壳的打磨和抛光工艺变得越来越严格。由于在拉伸和其他冲压工序中&#xff0c;容易使…

jdk10 换成jdk8_JDK 10的摘要Javadoc标签

jdk10 换成jdk8JDK 10通过发行JDK-8173425 引入了Javadoc标签{summary} &#xff08;“ Javadoc需要一个新标签来指定摘要。”&#xff09;。 这个新标签允许开发人员显式指定Javadoc注释的哪一部分出现在“摘要”中&#xff0c;而不是依靠Javadoc的默认处理来寻找一段时间和空…

深度学习pytorch--线性回归(一)

线性回归线性回归案例提出问题模型定义模型训练(1) 训练数据(2) 损失函数(3) 优化算法模型预测线性回归的表示方法神经网络图矢量计算小结线性回归案例 线性回归输出是一个连续值&#xff0c;因此适用于回归问题。回归问题在实际中很常见&#xff0c;如预测房屋价格、气温、销…

关于 vim 的 magic 设置

文章目录一、magic 介绍二、设置 magic&#xff08;一&#xff09;长效设置&#xff08;二&#xff09;临时设置&#xff08;三&#xff09;magic 示例1. 匹配由 3 个以字母 a 开头&#xff0c;以字母 c 结尾&#xff0c;中间是任意一个字符的子串组成的字符串&#xff08;1&am…

语言逻辑运算符两侧运算对象_5.3 C语言逻辑运算符与表达式

01优先次序 1、有3种逻辑运算符&#xff1a;与&#xff08;AND&#xff09;&#xff0c;或&#xff08;OR&#xff09;&#xff0c;非&#xff08;NOT&#xff09;。在basic和Pascal等语言可以在程序中直接用and&#xff0c;or&#xff0c;not作为逻辑运算符。在C语言中不能再程…

rabbitmq 传递文件_使用RabbitMQ进行消息传递

rabbitmq 传递文件RabbitMQ是一个强大的消息代理&#xff0c;可用于实现不同的消息传递模式。 即使有出色的教程 &#xff08;使用不同的语言和框架&#xff09;&#xff0c;也很难理解这些概念。 在这篇文章中&#xff0c;我想展示一些可以用RabbitMQ实现的不同范例&#xff0…

正则表达式的贪婪模式、非贪婪模式、占有模式

文章目录一、Greediness&#xff08;贪婪型&#xff09;&#xff08;一&#xff09;贪婪模式示例&#xff08;二&#xff09;贪婪模式的匹配过程&#xff08;贪婪模式的回溯&#xff09;二、Reluctant&#xff08;勉强型&#xff09;&#xff08;一&#xff09;非贪婪模式示例&…