Groovy 如何使用gradle提供的maven ant任务?
我正在尝试将一些工件发布到maven central repo,由于当前版本的gradle(0.9-rc2)不处理pgp,我想我可以尝试一下,在等待gradle 1.0的时候“移植”ant xml,希望它能够支持它 我在格拉德尔写了以下内容:Groovy 如何使用gradle提供的maven ant任务?,groovy,maven,gradle,Groovy,Maven,Gradle,我正在尝试将一些工件发布到maven central repo,由于当前版本的gradle(0.9-rc2)不处理pgp,我想我可以尝试一下,在等待gradle 1.0的时候“移植”ant xml,希望它能够支持它 我在格拉德尔写了以下内容: def mvn = groovy.xml.NamespaceBuilder.newInstance(ant, 'antlib:org.apache.maven.artifact.ant') mvn.mvn { arg(value:
def mvn =
groovy.xml.NamespaceBuilder.newInstance(ant, 'antlib:org.apache.maven.artifact.ant')
mvn.mvn {
arg(value: 'org.apache.maven.plugins:maven-gpg-plugin:1.1:sign-and-deploy-file')
arg(value: '-Durl=file:///tmp/repo2')
arg(value: '-DrepositoryId=sonatype-nexus-staging')
arg(value: '-DpomFile=pom.xml')
arg(value: '-Dfile=myjar.jar')
arg(value: '-Dfile=-Pgpg')
}
不幸的是,它不起作用,我得到以下信息:
Cause: Problem: failed to create task or type antlib:org.apache.maven.artifact.ant:mvn
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.
No types or tasks have been defined in this namespace yet
任何帮助都将不胜感激
谢谢
Yan我没有找到使用NamespaceBuilder的方法,但我找到了另一种可以直接使用任务的方法,解决了我的问题:
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)
ant.mvn(...)
}
存储库{
mavenCentral()
}
配置{
Mavenattasks
}
依赖关系{
mavenAntTasks'org.apache.maven:maven ant任务:2.1.1'
}
task hello我想让你知道Jörn Huxhorn已经开始创建一个插件,允许部署到OSS Repo。最新版本比较粗糙,需要运行最新的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)
ant.mvn(...)
}