Как отладить bootRun с помощью VScode - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь отладить приложение Spring bootRun через VSCode. Я не уверен, какова правильная конфигурация запуска.

Вот так я запускаю программу в терминале

./gradlew bootRun -Dspring.profiles.active=local

Это текущие конфигурации, которые я попробовал без удачи.

Launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "Debug",
            "args": [
                "bootRun",
                "-Dspring.profiles.active=local"
            ],
            "mainClass": "com.test.Application",
            "request": "launch"
        },
        {
            "type": "java",
            "preLaunchTask": "gradle",
            "name": "Debug Task",
            "request": "attach",
            "hostName": "localhost",
            "port": 5005
        }
    ]
}

Tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "gradle",
            "type": "shell",
            "command": "./gradlew",
            "args": [
                "bootRun",
                "-Dspring.profiles.active=local",
                "--debug-jvm"
            ],
            "problemMatcher": []
        }
    ]
}

Конфигурация "Debug" выдает следующую ошибку

No active profile set, falling back to default profiles: default

Конфигурация «Debug Task» запускает задачу, но ждет, пока задача не завершится, чего никогда не будет. Поэтому я не могу его отладить.

РЕДАКТИРОВАТЬ 1:

Так что, если я запускаю эту задачу

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "gradle",
            "type": "shell",
            "command": "./gradlew",
            "args": [
                "bootRun",
                "-Dspring.profiles.active=local",
                "--debug-jvm"
            ],
            "problemMatcher": []
        }
    ]
}

Затем запустите эту конфигурацию запуска

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "task 2",
            "request": "attach",
            "hostName": "localhost",
            "port": 5005
        }
    ]
}

Я могу отладить приложение, но это только присоединяет отладчик к процессу. Поэтому я должен вручную убить процесс, когда я закончу отладку. В идеале я хотел бы запускать и останавливать приложение с помощью vscode через конфигурацию запуска.

РЕДАКТИРОВАТЬ 2:

Я могу добиться того, чего хочу в IntelliJ, с помощью этой конфигурации, но я хочу иметь возможностьсделать это в VScode. IntelliJ Configuration

РЕДАКТИРОВАТЬ 3:

Это моя текущая конфигурация, которая работает довольно хорошо. Я могу запустить программу с CMD-SHFT-B, затем F5, чтобы запустить отладчик.

Launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "Debug",
            "request": "attach",
            "hostName": "localhost",
            "port": 5005
        }
    ]
}

Tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "gradle",
            "type": "shell",
            "command": "./gradlew",
            "args": [
                "bootRun",
                "-Dspring.profiles.active=local",
                "--debug-jvm"
            ],
            "dependsOn": [
                "kill-java"
            ],
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        {
            "label": "kill-java",
            "type": "shell",
            "command": "pkill",
            "args": [
                "java"
            ]
        }
    ]
}
...