Установите значение переменной в банке, используя задачу gradle - PullRequest
1 голос
/ 15 октября 2019

У меня есть архитектура клиента и сервера.

Клиент - это исполняемый файл .jar, созданный с использованием следующей задачи Gradle:

jar {
    archiveName = "app.jar"
    from sourceSets.main.output.classesDir
    include '**/*.class'
    manifest {
        attributes 'Main-Class': 'com.bobbyrne01.app.Main'
    }
    exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA'
}

Я изменяю способэтот клиент будет аутентифицироваться.

Проблема в том, что я хотел бы указать, какой метод аутентификации должен использовать клиент во время сборки.

Чтобы при загрузке пользователем .jar,они просто запустят его, и какой бы метод аутентификации, который я активировал во время сборки, будет активен в .jar.

Как лучше всего установить эту authenticationType переменную / флаг?

Для сервера есть интерфейс для аутентификации и несколько классов, которые реализуют разные методы аутентификации. При создании сервера я указываю свойство gradle, которое устанавливается в качестве переменной окружения на образе докера. Таким образом, во время выполнения сервер использует отражение, чтобы определить, какой класс аутентификации создавать.

Но я не уверен, как установить подобное значение в банке.

1 Ответ

0 голосов
/ 15 октября 2019

Используйте файл свойств, содержащий значение, позволяющее во время выполнения решить, какой механизм аутентификации вы хотите использовать.

Определите его как

authentication=${authentication} or 

или

authentication=@@authentication@@

в файле свойств источника. И используйте раскрытие или фильтрацию в стандартной задаче processResources gradle (типа Copy), чтобы заменить заполнитель фактическим значением, которое вы хотите использовать.

См. https://docs.gradle.org/current/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:expand(java.util.Map) и https://docs.gradle.org/current/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:filter(java.util.Map,%20java.lang.Class).

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