Сгенерированный .pom без учета транзитивных зависимостей - PullRequest
0 голосов
/ 16 февраля 2019

Возникла небольшая проблема, из-за которой мой сгенерированный .pom (использующий Gradle v4.10.3 и подключаемый модуль maven-publish gradle) не включает транзитивные зависимости.Из того, что я прочитал, следует читать зависимости проекта и включать их (я думаю!) Вместо того, чтобы вручную объявлять их в .pom.Я просмотрел документацию по объекту Pom и не увидел никаких методов, которые могли бы объявить транзитивные зависимости.

https://gitlab.com/snippets/1822620

Вот фрагмент файла root моего проекта build.gradle.ktsфайл и код из файла build.gradle.kts моего подпроекта (android-core).Как вы можете видеть, подпроект android-core зависит от подпроекта core, но он не объявляется как таковой, когда я генерирую .pom.

Есть ли настройка, которую я должен установить где-нибудь, которая сообщает.пом где найти зависимости?Или я иду по этому совершенно неверному пути?Любая помощь приветствуется!

РЕДАКТИРОВАТЬ: У меня есть это в моем файле журнала конвейера, который может объяснить, почему android-core не может видеть core в качестве депрессии (может быть?)

22:47:03.531 [INFO] [org.gradle.execution.taskgraph.DefaultTaskPlanExecutor] :generatePomFileForMaven-android-corePublication (Thread[Daemon worker,5,main]) started.

22:47:06.746 [INFO] [org.gradle.execution.taskgraph.DefaultTaskPlanExecutor] :generatePomFileForMaven-android-localPublication (Thread[Daemon worker,5,main]) started.

22:47:23.416 [INFO] [org.gradle.execution.taskgraph.DefaultTaskPlanExecutor] :generatePomFileForMaven-corePublication (Thread[Daemon worker,5,main]) started.

22:47:25.259 [INFO] [org.gradle.execution.taskgraph.DefaultTaskPlanExecutor] :generatePomFileForMaven-learningPublication (Thread[Task worker for ':',5,main]) started.

Я понятия не имею, почему они будут генерировать Pom не по порядку, потому что он просматривает список с предопределенным порядком.

РЕДАКТИРОВАТЬ: РЕШЕНИЕ Хорошо, вышеупомянутая была проблема - порядок загрузки, я думаю, потому что плагин Maven Publish загружается асинхронно, а содержимое core занимает больше времени, чтобы решить, потому что у него больше зависимостей& больше в целом.Я переключил свою публикацию для каждого подпроекта и явно вызывал одну за другой в файле сценариев CI, и теперь он работает, как и предполагалось, со всеми зависимостями.

примечание: Когда япереключился на отдельный метод публикации подпроекта Мне пришлось переключить плагин maven-publish на плагин android-maven-publish, чтобы он поддерживал публикацию (потому что вы не можете включить плагин java в проект Android, если у вас также есть com.android.library).Мне также пришлось переключить from(components["java"]) на from(components["android"]).

Я не думаю, что это лучший способ сделать это, но на данный момент, по крайней мере, это работает.Я постараюсь оптимизировать его лучше в будущем (и любые реальные ответы приветствуются!)

...