gpt4 book ai didi

gradle - 如何将父Maven的属性获取到Gradle

转载 作者:行者123 更新时间:2023-12-03 05:47:43 27 4
gpt4 key购买 nike

我们有多个项目使用maven作为构建自动化工具,这些项目由公司中的多个团队开发和使用。我们有一个父应用程序,其中有通用插件相关的代码,我们使用如下

<parent>
<groupId>some.project.config</groupId>
<artifactId>project-config</artifactId>
<version>x.x.xx</version>
<relativePath />
</parent>

我需要为一个应用程序使用gradle,如何使用父级的属性。
是否需要将父级也转换为gradle以使用属性?

最佳答案

您可以使用Maven Model Builder API获取effective model

参见MavenTransform.javaModelResolverImpl.java

例如:

buildscript {
dependencies {
classpath 'org.apache.maven:maven-model:3.5.2'
classpath 'org.apache.maven:maven-model-builder:3.5.2'
}
}
configurations {
pom
}
dependencies {
pom 'some.project.config:project-config:x.x.xx@pom'
}
task copyPom(type: Copy) {
from configurations.pom.singleFile
into "$buildDir/pom"
rename '.*', 'pom.xml'
}
task parsePom(dependsOn: copyPom) {
inputs.file "$buildDir/pom/pom.xml"
doLast {
DefaultModelBuilderFactory factory = new DefaultModelBuilderFactory();
DefaultModelBuilder builder = factory.newInstance()
ModelResolver modelResolver = new ModelResolverImpl(project)
ModelBuildingRequest req = new DefaultModelBuildingRequest()
req.pomFile = file("$buildDir/pom/pom.xml")
req.modelResolver = modelResolver
req.xxx = ...
req.yyy = ...
Model effectivePom = builder.build(req).getEffectiveModel()
doStuff(effectivePom)
}
}

关于gradle - 如何将父Maven的属性获取到Gradle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49148869/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com