gpt4 book ai didi

ant - 使用 Gradle 从现有的 pom.xml 文件中读取信息?

转载 作者:行者123 更新时间:2023-12-04 12:11:11 24 4
gpt4 key购买 nike

在 Ant 中 Maven Ant Tasks可用于读取 maven 属性,如下所示:

<artifact:pom id="mypom" file="pom.xml" />
<echo>The version is ${mypom.version}</echo>

Gradle 中是否有“ native ”支持从现有的物理 pom.xml 文件访问 pom 元素,或者我是否需要在我的 .gradle 文件中通过上述 Ant 方法来完成这项工作?

这一页:

http://gradle.org/docs/current/userguide/maven_plugin.html

有关于生成 pom 文件的信息,但这不是我要找的。我试图创建一个 .gradle 文件来做同样的事情:
    repositories {
mavenCentral()
}

configurations {
mavenAntTasks
}

dependencies {
mavenAntTasks 'org.apache.maven:maven-ant-tasks:2.1.1'
}

task hello << {
ant.taskdef(resource: 'org/apache/maven/artifact/ant/antlib.xml',
uri: 'antlib:org.apache.maven.artifact.ant',
classpath: configurations.mavenAntTasks.asPath)

// what is the gradle syntax for this:
// <artifact:pom id="mypom" file="maven-project/pom.xml" />
// its not a property or a task...
def artifact = groovy.xml.NamespaceBuilder.newInstance(ant,'antlib:org.apache.maven.artifact.ant')
artifact.pom(id:'mypom', file: 'pom.xml')
def text = properties['mypom.version']
println "From pom file: " + text

}

我在 build.gradle 文件旁边有一个简单的 pom.xml 文件。但是我在 gradle 文档中找不到有关此任务的相应 ant 调用的任何信息。我看过:

http://www.gradle.org/docs/current/userguide/ant.html

关于如何阅读 ant 属性和引用,但这个:
<artifact:pom id="mypom" file="maven-project/pom.xml" />

似乎既不是属性也不是引用。我偶然发现了这个页面:

http://snipplr.com/view/4082/

哪里 命名空间构建器 用来:
 def mvn = groovy.xml.NamespaceBuilder.newInstance(ant, 'antlib:org.apache.maven.artifact.ant')

但是当使用这种方法时,我得到:
The AbstractTask.getDynamicObjectHelper() method has been deprecated and will be removed in the next version of Gradle. Please use the getAsDynamicObject() method instead.
From pom file: null

经过一番谷歌搜索,我发现:

http://issues.gradle.org/browse/GRADLE-2385

这似乎相关,但该属性的值仍然为空。

最佳答案

Gradle 不提供解析 POM 文件的原生支持,但 Groovy 的 XmlSlurper使 XML 解析变得简单方便。与 Ant 方法相比,我可能更喜欢这种方法。

关于ant - 使用 Gradle 从现有的 pom.xml 文件中读取信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11558157/

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