`gradle install` 如何生成 `pom.xml` 文件

How does `gradle install` generate the `pom.xml` files

当我 运行 gradle install 它在每个子项目中生成很好的 pom.xml 文件。

在哪里可以看到实现该功能的源代码?

根据 Maven plugin documentation, there's something about the Upload 任务,但其文档和源代码没有提供任何具体内容。

您可以将 gradle-maven-VERSION.jar 添加到您的依赖项并自行调试插件。相应的源代码位于您的 gradle 安装中,或位于 github 上:https://github.com/gradle/gradle/tree/master/subprojects/maven/src/main/java/org/gradle/api/publication/maven/internal

为了让您抢先一步:大部分代码位于 DefaultMavenPom class 中。 它是在 DefaultMavenPomFactory.create() 中创建的,带有一些虚拟值:

  • MavenProject.EMPTY_PROJECT_GROUP_ID
  • MavenProject.EMPTY_PROJECT_ARTIFACT_ID
  • MavenProject.EMPTY_PROJECT_VERSION

然后,AbstractMavenResolver.publish(IvyModulePublishMetadata moduleVersion)被调用, 其中,除其他外:

  • 根据DefaultArtifactPom.assignArtifactValuesToPom()
  • 中实际神器填写基础pom数据
  • 填写依赖关系 - 他们填写 DefaultMavenPom.getGeneratedDependencies()
  • 写入生成的文件