Как я могу добавить "Параметры" в справочную справку gradlew --task

99
7

У меня есть следующая настройка в файле build.gradle:

// Task designed to bump version numbers. This should be the first task run     
// after a new release branch is created.
task bumpVersion(description: 'Bumps the version number of the current Android release. Should be used as a standalone task, and should only be the first task called after creating a release branch.', group: 'Management') << {
Properties props = new Properties();
File propsFile = new File('gradle.properties');
props.load(propsFile.newDataInputStream());
def currentVersionCode = props.getProperty("CORE_VERSION_CODE") as int;
def currentVersionName = props.getProperty("CORE_VERSION_NAME") as String;
def intPortionsOfVersionName = currentVersionName.tokenize('.').toArray();
def leastSignificantPortion = intPortionsOfVersionName[intPortionsOfVersionName.length - 1] as int;

def newVersionCode = currentVersionCode + 1;
def newVersionName = "";
if (!project.hasProperty('newVersion')) {
leastSignificantPortion = leastSignificantPortion + 1;
intPortionsOfVersionName[intPortionsOfVersionName.length - 1] = leastSignificantPortion;
newVersionName = intPortionsOfVersionName.collect{ it }.join(".");
} else {
newVersionName = project.getProperty('newVersion');
}

props.setProperty("CORE_VERSION_NAME", newVersionName as String);
props.setProperty("CORE_VERSION_CODE", newVersionCode as String);

props.store(propsFile.newWriter(), null);
}

Под линией newVersionName = project.getProperty('newVersion') я пытаюсь получить свойство "newVersion", если оно существует, и ударить наименее значимую цифру, если она недоступна.

Это отлично работает, но я хочу добавить способ указать этот параметр в документации (например, gradle help --task bumpVersion). Например, если я запустил gradle help --task help, это дает мне:

:help
Detailed task information for help

Path
:help

Type
Help (org.gradle.configuration.Help)

Options
--task The task, detailed help is requested for.

Description
Displays a help message

Обратите внимание, что "--task" находится в разделе "Параметры". Мне интересно, как это сделать с моим собственным кодом.

спросил(а) 2021-01-25T19:04:27+03:00 4 месяца, 4 недели назад
1
Решение
63

Это можно сделать с @Option аннотации @Option.

@Option(option = "version", description = "Version number to use")
public void setVersion(String version) { ... }

Примечание. Это внутренний API, поэтому он может измениться.

Изменить. Возможно, забыл упомянуть, что вам придется реализовать свою задачу в качестве настраиваемого класса задач, чтобы использовать эту возможность.

ответил(а) 2021-01-25T19:04:27+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема