2010-11-08 13 views
7

Próbuję opublikować niektóre artefakty do centralnego repo maven i ponieważ obecna wersja gradle (0.9-rc2) nie obsługuje pgp I chociaż spróbuję przez "przeniesienie" wersji ant xml z https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide podczas oczekiwania dla Gradle 1.0 z nadzieją, że będzie wspierać go z pudełka ...Jak korzystać z zadania maven ant od stopniowania?

pisałem o następujących 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') 
    } 

Niestety to nie działa, a ja dostaję to:

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 

Próbowałem różnych kombinacji w tym dodanie następujących u góry mojego skryptu:

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

Każda pomoc będzie bardzo doceniane

Dzięki Yan

+1

Pomyślałem, że dam Ci znać, że Jörn Huxhorn ma sta przygotowałam wtyczkę do tworzenia wtyczki pozwalającej na instalację do Sonatypes OSS Repo. Najnowsza wersja jest trudna i wymaga najnowocześniejszych źródeł, ale będzie działać. Więcej o wtyczce tutaj: http://gradle.codehaus.org/Plugins#Plugins-PGPPlugin – xlson

+0

Dziękuję, naprawdę dobrze jest wiedzieć, że nadchodzi! – yan

Odpowiedz

7

Nie mogę znaleźć sposób na wykorzystanie NamespaceBuilder ale znalazłem inny sposób, aby móc bezpośrednio użyć zadania, które rozwiązuje mój problem:

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(...) 
} 
Powiązane problemy