2016-11-15 3 views
1

Возможно ли использовать CLI, чтобы добавить банку с плагином Gradle (или задачей) в путь сборки build без изменения build.gradle? Можно ли разрешить добавление JAR из репозитория Maven?Добавить динамические зависимости через командную строку

buildscript { dependencies { classpath }} управляемый от CLI? И могу ли я использовать CLI, чтобы заставить Gradle разрешить JAR из Maven?

В основном нужен для достижения той же ситуации, как и с Maven, который позволяет вызвать любой плагин,

mvn <plugin-group-id>:<plugin-artifact-id>:<plugin-version>:<plugin-goal> 

я пишу пару Maven and Gradle plugins для извлечения информации о проектах и ​​их зависимостей в JSON файл, который могут быть впоследствии обработаны программно. Идея состоит в том, чтобы иметь возможность применять его в большом количестве проектов OSS и, следовательно, без их модификации.

+1

«Можно ли использовать CLI применять JAR с Gradle плагин от Maven репозиторий "это заявление нуждается в уточнении. Вы хотите добавить задачу сборки в сборку? Вы хотите добавить банку в зависимости от компиляции/выполнения? Неясно, что вы хотите –

+0

Я обновил заявление – Viktor

+0

«build classpath» по-прежнему неоднозначно, поскольку это может означать 'buildscript {classpath ...}}' или 'dependencies {compile ...}}' или что-то еще? runtime и т. д. –

ответ

3

Я думаю, что я получаю сейчас

MyInit-script.gradle

if (hasProperty('extraDependencies')) { 
    def extraDeps = property('extraDependencies').split(',') 
    allprojects { 
     buildscript { 
      dependencies { 
       classpath extraDeps 
      } 
     } 
    } 
} 

командной строки

gradlew --init-script myinit-script.gradle -PextraDependencies=org.foo:bar:1.0,org.foo:baz:1.2 build 
+0

Кажется, мой вопрос действительно очень запутан, извините; ( Мне нужно сделать пользовательский плагин (или прямую задачу) доступным по пути сценария сборки и вызвать его. добавление инструкции 'apply plugin' и' buildscript {dependties {classpath}} 'to' build.gradle' – Viktor

+0

Обновленный ответ для этого через [init-script] (https://docs.gradle.org/current/userguide/ init_scripts.html # сек: using_an_init_script) –