2010-11-08 12 views
7

Sto cercando di pubblicare alcuni artefatti per il repository centrale Maven e poiché l'attuale versione di gradle (0.9-rc2) non gestisce pgp, anche se proverei a fare il "porting" della versione xml della form da https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide durante l'attesa per Gradle 1.0 che si spera sosterrà fuori dalla scatola ...Come utilizzare l'attività formica di gradle da gradle?

ho scritto quanto segue in 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') 
    } 

Purtroppo non funziona e sto ottenendo questo:

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 

Ho provato varie combinazioni tra cui l'aggiunta di quanto segue nella parte superiore del mio script:

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

Qualsiasi aiuto sarebbe molto apprezzato

Grazie Yan

+1

Ho solo pensato di farti sapere che Jörn Huxhorn ha sta ha deciso di creare un plug-in per consentire l'implementazione di Sonatypes OSS Repo. L'ultima versione è grezza e richiede l'utilizzo delle ultime fonti gradle, ma farà il lavoro. Maggiori informazioni sul plugin qui: http://gradle.codehaus.org/Plugins#Plugins-PGPPlugin – xlson

+0

Grazie, è davvero bello sapere che sta arrivando! – yan

risposta

7

non ho trovato un modo per utilizzare NamespaceBuilder ma ho trovato un altro modo per essere in grado di utilizzare direttamente l'attività che risolve il mio problema:

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(...) 
} 
Problemi correlati