Как передать расширенные параметры JVM из Spring bootRun с помощью Gradle? - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь включить разные профили запуска в build.gradle.Один будет для "нормальных" условий эксплуатации, а другой - для местного развития.Локальная разработка должна активировать мой «локальный» весенний профиль, а также прослушивать отладку для определенного порта.Это то, что у меня есть в моем build.gradle:

    task localBootRun(dependsOn: bootRun) {
    bootRun {
        args = ["--spring.profiles.active=local"]
    }
}

И это работает, когда я вызываю задачу localBootRun из gradle:

./gradlew localBootRun

Что я не могу понятькак передать расширенные аргументы JVM, необходимые для прослушивания отладчика.Обычно я передаю их в командной строке JVM:

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8005

Но я не могу понять, как заставить мою задачу localBootRun передать их в качестве аргументов JVM.

1 Ответ

0 голосов
/ 31 мая 2018

Вот что сработало для меня в данном конкретном сценарии:

bootRun {
    args = ["--spring.profiles.active=local"]
    jvmArgs = ["-Xdebug", "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8005"]
}

Затем я обычно вызываю задачу:

./gradlew bootRun

Кажется, отлично работает!

Если вам нужна другая или заданная по умолчанию задача bootRun, есть немного больше работы:

def profileVal = project.hasProperty('profile') ? project.property('profile') : 'default'
bootRun {
    args = ["--spring.profiles.active=${profileVal}"]

    if (profileVal == "local") {
        jvmArgs = ["-Xdebug", "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8005"]
    }

И затем вы можете вызвать ее обычным образом:

./gradlew bootRun

Для запуска по умолчаниюили вызовите его с профилем:

./gradlew -Pprofile=local bootRun

Для «локального» профиля с отладкой.

Возможно, есть лучшие или другие способы сделать это, но это сработало для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...