首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用gradle中的maven ant任务?

如何使用gradle中的maven ant任务?
EN

Stack Overflow用户
提问于 2010-11-08 08:58:30
回答 1查看 1.8K关注 0票数 7

我正在尝试将一些工件发布到maven中央存储库,由于当前版本的gradle (0.9-rc2)不处理pgp,我想我应该尝试一下,在等待gradle1.0的时候‘移植’ant xml version,希望它能开箱即用。

我在gradle中写了以下内容:

代码语言:javascript
复制
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')
  }

不幸的是,它不工作,我得到了这个:

代码语言:javascript
复制
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

我尝试了各种组合,包括在我的脚本顶部添加以下内容:

代码语言:javascript
复制
buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'org.apache.maven:maven-ant-tasks:2.1.1'
  }
}

任何帮助都将不胜感激

谢燕

EN

回答 1

Stack Overflow用户

发布于 2010-11-09 22:00:59

我没有找到使用NamespaceBuilder的方法,但我找到了另一种能够直接使用任务的方法,它解决了我的问题:

代码语言:javascript
复制
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(...)
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4120575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档