如何将父Maven的属性获取到Gradle [英] How to get properties of parent Maven to Gradle

查看:315
本文介绍了如何将父Maven的属性获取到Gradle的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

We have multiple projects which use maven as build automation tool these project are developed and used by multiple teams in our company. We have a parent application in which we have the generic plugin related code, we use as follows

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

我需要在一个应用程序中使用gradle,如何使用parent的属性. 是否有必要将父级也转换为gradle以使用这些属性?

I need to use gradle for one application how can i use the properties of parent. Is it necessary to have parent also converted to gradle to use the properties?

推荐答案

您可以使用请参见例如:

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)
    }
}

这篇关于如何将父Maven的属性获取到Gradle的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆