logo

Передача аргументов в Java-приложение через Gradle задачу

Быстрый ответ

Для передачи аргументов в Java-приложение с использованием Gradle, вам нужно настроить задачу JavaExec следующим образом:

groovy
Скопировать код
task runWithArgs(type: JavaExec) {
    mainClass = 'com.yourapp.Main'
    args 'firstArg', 'secondArg', 'thirdArg'
}

Выполните ./gradlew runWithArgs и ваше приложение получит все необходимые аргументы.

Работаем с Gradle версии 4.9 и выше

Начиная с версии Gradle 4.9+ передача аргументов значительно упростилась благодаря параметру --args:

Bash
Скопировать код
gradle run --args='arg1 arg2 arg3'

Проверьте, что в build.gradle применён плагин Application и задан главный класс:

groovy
Скопировать код
apply plugin: 'application'

mainClassName = 'com.yourapp.Main'

Теперь команда run запускает приложение с переданными аргументами.

Создаем собственные задачи JavaExec? Никаких проблем!

Для определения пользовательских задач JavaExec достаточно прописать аргументы в методе args:

groovy
Скопировать код
task customRun(type: JavaExec) {
    main = 'com.yourapp.CustomMainClass'
    args 'customArg1', 'customArg2'
}

Запустите ./gradlew customRun, и ваше приложение будет запущено с заданными аргументами.

Работаем со старыми версиями Gradle (до 4.9)

В Gradle до версии 4.9 аргументы передаются немного иначе — посредством свойства проекта appArgs:

groovy
Скопировать код
run {
    if (project.hasProperty('appArgs')) {
        args Eval.me(appArgs)
    }
}

Для запуска приложения используйте следующую команду:

Bash
Скопировать код
gradle run -PappArgs="['arg1', 'arg2']"

Когда старому Gradle требуется обновление

Если вы хотите использовать параметр --args, но ваша версия Gradle устарела, может быть, стоит подумать об обновлении.

Не забывайте проверять версию Gradle

Перед началом работы не забудьте проверить версию Gradle, используя команду gradle --version.

Визуализация

Представьте аргументы для Java-приложения как особые ингредиенты, которые придают блюду неповторимый вкус и уникальность. Настройка процесса передачи аргументов напоминает кулинарию:

groovy
Скопировать код
task launchRocket(type: JavaExec) {
    main = 'com.space.mission.LaunchControl'
    args = ['LiquidOxygen', 'RP1']
}

Запуск задачи gradlew launchRocket напоминает ужин, приготовленный по изысканному рецепту, где каждый аргумент играет свою важную роль.

Полезные материалы

  1. JavaExec – Gradle DSL версии 8.6 — официальное руководство Gradle по JavaExec.
  2. Руководство по созданию надежных Java-приложений — подробное руководство по созданию Java-приложений с использованием Gradle.
  3. Baeldung о работе с аргументами командной строки — обзор методов обработки аргументов в Gradle.
  4. GitHub Gist – Примеры запуска Gradle — полезные советы для настройки запуска приложений через Gradle.
  5. Jvm Bloggers – Сборка Java-проектов с Gradle — опыт успешной работы с Gradle в Java-проектах.