Обратите внимание, что на этот вопрос может быть частично дан ответ, решая конкретную проблему, но также решается решение общей проблемы.Неисправность buildscript Gradle не найдена
Конкретная проблема
Мне нужно передать параметры командной строки для Gradle коды. У Gradle нет разумного способа сделать это, поэтому мне нужно как-то их извлечь из System
свойств, а затем проанализировать их. Я пытался использовать пакет org.apache.common.cli
. Но я не могу импортировать его в код сборки.
Это примерно то, что он выглядит следующим образом:
buildscript {
repositories { ... }
dependencies {
classpath group: "commons-cli", name: "commons-cli", version: "1.2"
}
}
...
org.apache.commons.cli.DefaultParser
И я получаю это:
* What went wrong:
Could not compile build file 'somewhere/build.gradle'.
> startup failed:
build file 'somewhere/build.gradle': 35: unable to resolve class org.apache.commons.cli.DefaultParser
@ line 35, column 1.
import org.apache.commons.cli.DefaultParser
Я понятия не имею, что пошло не так или, как отладить это. Я также пробовал Groovy's groovy.util.CliBuilder
, но это ломается с еще более загадочными ошибками.
Итак, чтобы решить мою непосредственную проблему: я был бы рад найти простой способ проанализировать аргументы командной строки, переданные в сборку Gradle.
Generic проблема
Есть ли способ отладки Gradle код? Отладка Я не имею в виду добавить аргумент --debug
в его параметры командной строки. Он просто печатает тонны бессмысленной глупости, но ничего не говорит о том, что он пытался сделать, и что пошло не так. Я имею в виду что-то вроде фактического отладчика.
Есть ли способ узнать, какие зависимости он пытался загрузить, и удавалось ли им загружать их, и если да, откуда они их загружали?
Есть ли способ перевести язык «Грейдл» во что-то, что можно проанализировать с помощью linter/editor s.t. можно было бы знать, в каких частях он делает/если имеет смысл добавлять другие части определенного вида (что я имею в виду - это какой-то интеллект, чтобы облегчить понимание проблем, таких как неудовлетворительные зависимости)?
Что вы подразумеваете, нет разумного способа передать параметры командной строки? Вы пытались использовать опцию '-P'? См. Https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_properties_and_system_properties – RaGe
@RaGe (a) Это хромает по сравнению с любой библиотекой, которая выполняет разбор командной строки (вы хотите иметь возможность добавлять описание опции командной строки, наличие групп опций, автоматическое создание ошибок, если аргументы не соответствуют вашему формату и т. д.). (b) Это невозможно использовать на базовом уровне (эти ошибки, если вы не определяете соответствующее свойство проекта, это недоступно для ваших классов в области определения). – wvxvw
Вы имеете в виду тип помощи, которую вы получаете при запуске 'gradle tasks'? Просто чтобы исключить, что это не случай проблемы [XY] (http://xyproblem.info/), можете ли вы описать, что именно вы пытаетесь сделать, анализируя аргументы командной строки? – RaGe