生成的.pom不包括传递依赖项

时间:2019-02-16 13:01:28

标签: gradle pom.xml gradle-kotlin-dsl maven-publish

有一个问题,我生成的.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插件正在异步上传并且{{1} }花费了更长的时间来解决,因为它具有更多的依赖关系并且总体上更大。我将发布切换为基于每个子项目,并在CI脚本文件中显式地逐个调用,现在它可以按预期与所有依赖项一起使用。

旁注::当我切换到单个子项目发布方法时,我确实不得不将core插件切换到maven-publish插件以使其支持发布(因为如果您也有android-maven-publish,则不能在Android项目中包含java插件。我还必须将com.android.library切换为from(components["java"])

我认为这不是实现此目的的最佳方法,但就目前而言,至少是可行的。将来我会尝试对其进行优化(欢迎任何实际答案!)

0 个答案:

没有答案