Страницы

Поиск по вопросам

понедельник, 18 февраля 2019 г.

Как в gradle скрипте Java проекта настроить создание константы, имеющей разные значения для разных ОС

Пишу сервлет на винде, собираю проект через Gradle. Запускать надо будет на Debian. В проекте используется путь до определённого файла в ОС (драйвер Chrome для Selenium). На винде и Debian он разный. Как я могу настроить варианты сборки для разных ОС так, чтобы в них была в Java коде доступна константа, заданная в скрипте сборки и имеющая разные значения для вариантов сборки?
В андроид это сделать легко, а вот тут сходу не сообразить. Рассмотрю вариант однозначного программного определения ОС, на коей идёт исполнение и подставление пути до файла в рантайме.


Ответ

Рассмотрю вариант однозначного программного определения ОС, на коей идёт исполнение и подставление пути до файла в рантайме.
Насколько я понимаю для Ваших целей достаточного грубого определения ОС: Windows и не-Windows. Тогда подойдет такой метод:
boolean isWindows() { return System.getProperty("os.name").contains("Windows"); }
Метод можно использовать при инициализации пути, например:
//константы private static final String WINDOWS_PATH = "C:\\driver\\chrome.exe"; private static final String UNIX_PATH = "/usr/bin/chromedriver"; ... //использование pathToExecutable = isWindows() ? WINDOWS_PATH : UNIX_PATH;
С помощью Gradle можно записывать путь, например, в файл properties, после чего код будет считывать его в рантайме.

Комментариев нет:

Отправить комментарий