Передача spring.config.location в задачу bootRun - PullRequest
0 голосов
/ 16 января 2019

Я хотел изменить spring.config.additional-location, чтобы приложение gradle Springboot работало локально. В моем C:/demo_class_path есть файл свойств, и он находится вне фляги. Я пытался получить доступ к этим свойствам в коде. команда java -jar demo-application.jar spring.config.additional-location=file:C:/demo_class_path для запуска аргументов jar wtth работает, и я смогу получить нужный мне ресурс. Но я пытался добавить аргумент в задачу bootRun, но она не удалась.

Я попробовал код ниже:

bootRun {
    systemProperties = [
        'spring.config.additional-location' : "file:C:/demo_class_path",
        'server.port' : 8090
    ]
}

или

bootRun {
    jvmArgs = [
        "-Dspring.config.additional-location=file:C:/demo_class_path/",
        "-Dserver.port=8090"
    ]
}

С помощью приведенного выше кода я смогу изменить порт на 8090, но мои файлы больше не могут быть взяты из пути. Я также попытался добавить spring.config.additional-location = file: C: / demo_class _path к application.properties, и это тоже не сработало. Мне было интересно, если синтаксис для местоположения является неправильным. В таком случае, почему команда Java будет работать?

1 Ответ

0 голосов
/ 16 января 2019

systemProperties используются для передачи свойств, которые вы обычно передаете с -D в среду выполнения.

jvmArgs предназначен для передачи аргументов в JVM.

То, что вы хотите использовать, это args вместо одного из вышеперечисленных.

bootRun {
  args = [
    '--spring.config.additional-location=file:C:/demo_class_path/',
    '--server.port=8090'
    ]
}

Важно включить / в конце для spring.config.additional-location. Если оно не заканчивается на /, оно интерпретируется как базовое имя файла, а не местоположение файла.

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