Сгенерированный.pom без учета транзитивных зависимостей
Возникла небольшая проблема, из-за которой мой сгенерированный.pom (использующий Gradle v4.10.3 и подключаемый модуль maven-publish gradle) не включает транзитивные зависимости. Из того, что я прочитал, следует читать зависимости проекта и включать их (я думаю!) Вместо того, чтобы вручную объявлять их в.pom. Я просмотрел документацию для объекта Pom и не увидел методов, которые могли бы объявить транзитивные зависимости.
https://gitlab.com/snippets/1822620
Вот фрагмент файла build.gradle.kts корня моего проекта и код из файла build.gradle.kts моего подпроекта (android-core
). Как видите, подпроект android-core
зависит от подпроекта core
, но он не объявляется как таковой, когда я генерирую.pom.
Есть ли параметр, который я должен установить где-нибудь, который сообщает.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"])
,
Я не думаю, что это лучший способ сделать это, но на данный момент, по крайней мере, это работает. Я постараюсь оптимизировать его лучше в будущем (и любые реальные ответы приветствуются!)