Возникла небольшая проблема, из-за которой мой сгенерированный .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"])
.
Я не думаю, что это лучший способ сделать это, но на данный момент, по крайней мере, это работает.Я постараюсь оптимизировать его лучше в будущем (и любые реальные ответы приветствуются!)