2010-11-08 4 views
7

J'essaye de publier quelques artefacts au repo central de maven et puisque la version actuelle de gradle (0.9-rc2) ne manipule pas le pgp I bien que j'essaierais en porting la version de xml de https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide en attendant pour gradle 1.0 qui, nous l'espérons soutenir de la boîte ...Comment utiliser la tâche de fourmis maven de gradle?

j'ai écrit ce qui suit dans gradle:

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

Malheureusement, il ne fonctionne pas et je reçois ce:

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 

J'ai essayé différentes combinaisons, notamment ce qui suit au sommet de mon script:

buildscript { 
    repositories { 
    mavenCentral() 
    } 
    dependencies { 
    classpath 'org.apache.maven:maven-ant-tasks:2.1.1' 
    } 
} 

Toute aide serait très apprécié

Merci Yan

+1

Juste pensé que je vous ferais savoir que Jörn Huxhorn a sta le travail de création d'un plugin pour permettre les déploiements vers Sonatypes OSS Repo. La dernière version est rugueuse et nécessite les dernières sources gradle pour fonctionner mais fera le travail. En savoir plus sur le plugin ici: http://gradle.codehaus.org/Plugins#Plugins-PGPPlugin – xlson

+0

Merci c'est vraiment bon de savoir que ça s'en vient! – yan

Répondre

7

Je n'ai pas trouvé un moyen d'utiliser NamespaceBuilder mais j'ai trouvé une autre façon de pouvoir utiliser la tâche directement qui résout mon problème:

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(...) 
} 
Questions connexes