Gradle - могу ли я включить вывод задачи в зависимости проекта

У меня есть задача, которая генерирует Java-источники и набор JAR-файлов из этих источников (скажем, проектa). Я хотел бы экспортировать эти банки в зависимые проекты (скажем, проектb). Так вот'примерно то, что у меня есть сейчас:

//a.gradle

configurations{
  generatedJars
}

task generateJars(type: JavaExec) { 
  //generate jars ... 

  outputs.files += //append generated jars here
} 

dependencies{
  generatedJars generateJars.outputs.files
}


//b.gradle

dependencies{
  project(path: ':a', configuration: 'generatedJars')
}

Работает нормально, кроме добавленияgenerateJars.outputs.files как зависимость не говорит Gradle, что он должен работатьgenerateJars задача, когда еще нет сгенерированных банок. Я попытался добавить задачу в качестве зависимости, надеясь, что она будет работать так же, как и при добавлении задачи jar / zip в конфигурацию артефакта (например,artifacts{ myJarTask }), но выдает ошибку, сообщающую, что я не могу этого сделать. Конечно, я могу ввестиgenerateJars задача где-то в процессе сборки перед:b начинает оценивать, но этонеуклюжий и хрупкий, поэтому я хотел бы избежать этого.

Я чувствую, что должен добавить сгенерированные банки вartifacts{ ... } проекта, но я не уверен, как сделать их видимыми для зависимых проектов. Есть ли лучший способ добиться этого?

Зависимые проекты (проектb) потребуется выполнить настройку classpath модуля IntelliJ IDEA, чтобы указать на проект 'aсгенерированные банки. Что-то вроде этого (псевдокод):

//b.gradle

idea{
  module{
    scopes.COMPILE.plus += project(path: ':a', configuration: 'generatedJars').files
  }
}

До сих пор я пытался просто добавить зависимость проекта от:ageneratedJars в:bПлагин Idea просто добавляет модуль:a как модуль-зависимость и предполагает, что он экспортирует свои сгенерированные jar (что, вероятно, является правильным предположением), поэтому не добавляет сгенерированные jar в ':bпуть к классу

Любая помощь будет принята с благодарностью!

Ответы на вопрос(1)

Ваш ответ на вопрос