Существует некоторая документация о том, как добавить JRebel в приложение Spring Boot , которое использует Gradle в качестве инструмента для сборки. Это простой, но работает отлично.
Все, что вам нужно сделать, это добавить несколько строк в build.gradle:
1
2
3
|
if (project.hasProperty( 'rebelAgent' )) { bootRun.jvmArgs += rebelAgent } |
Затем установите свойство в gradle.properties:
1
|
rebelAgent=-agentpath:[path/to/JRebel library] |
Однако есть несколько способов улучшить это.
Сделать JRebel необязательным
Например, что если вы не всегда хотите JRebel каждый раз, когда запускаете приложение с помощью « bootRun» ? Плагины JRebel для IDE, такие как Intellij IDEA , достаточно умны, чтобы дать вам возможность запускать ваше приложение с JRebel или без него.
Было бы несколько способов сделать это, но один из них — добавить загрузочную конфигурацию JRebel в необязательную задачу.
1
2
3
4
5
6
7
8
9
|
task addRebelAgent << { if (project.hasProperty( 'rebelAgent' )) { bootRun.jvmArgs += rebelAgent } else println 'rebelAgent property not found' } task rebelRun(dependsOn: [ 'addRebelAgent' , 'bootRun' ]) |
Теперь запуск «bootRun» запускает приложение в обычном режиме, и если вы хотите JRebel, используйте вместо этого задачу «rebelRun». Я также добавил отладочное сообщение, если свойство rebelAgent недоступно.
Другой способ — передать необязательное свойство в задачу «bootRun» для использования в качестве флага, добавлять ли JRebel или нет.
1
2
3
4
|
if (project.hasProperty( 'rebelAgent' ) && project.hasProperty( 'addJRebel' )) { bootRun.jvmArgs += rebelAgent } |
Затем, чтобы использовать JRebel, вам просто нужно добавить дополнительное свойство.
gradle bootRun -PaddJRebel = true
Нахождение базы повстанцев
Указание пути к библиотеке JRebel для использования в качестве агента в файле свойств позволяет нескольким разработчикам иметь собственную версию. Однако путь все еще жестко запрограммирован, чего следует избегать, если это возможно.
Другой способ указать путь — использовать системную переменную среды, чтобы указать, где установлен JRebel. JetBrains рекомендует использовать REBEL_BASE . После настройки это позволяет использовать переменную среды несколькими способами, например, файлами сборки Gradle, командной строкой, сценариями сборки и т. Д.
Вот пример использования дополнительной задачи «addRebelAgent», которую я указал ранее, которую я использую на своем компьютере с Windows 64.
01
02
03
04
05
06
07
08
09
10
11
12
|
task addRebelAgent << { project.ext { rebelAgent = "-agentpath:${System.env.REBEL_BASE}${rebelLibPath}" } if (project.hasProperty( 'rebelAgent' )) { bootRun.jvmArgs += rebelAgent } else println 'rebelAgent property not found' } task rebelRun(dependsOn: [ 'addRebelAgent' , 'bootRun' ]) |
И в gradle.properties я указал путь к библиотеке агентов из места установки JRebel.
1
|
rebelLibPath=\\lib\\jrebel64.dll |
Все, что я сделал здесь, это построил путь в свойстве rebelAgent из переменной среды REBEL_BASE и другого свойства, определяющего внутренний путь к библиотеке.
1
|
rebelAgent = "-agentpath:${System.env.REBEL_BASE}${rebelLibPath}" |
Опубликовано на Java Code Geeks с разрешения Дэвида Вонга, партнера нашей программы JCG . См. Оригинальную статью здесь: JRebel для загрузочного приложения Gradle Spring
Мнения, высказанные участниками Java Code Geeks, являются их собственными. |