`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()
- 写入生成的文件
当我 运行 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()
- 写入生成的文件