2016-01-05 6 views
5

Uso il gradle (2.9) plug-in maven-publish per pubblicare un file in un repository privato nexus maven. Il file è build.gradleImpossibile trasferire artefatto pom in gradle maven-publish plug-in

apply plugin: 'maven-publish' 

publishing { 
    repositories { 
     maven { 
      name "example-maven" 
      url "https://..." 
      credentials { 
       username mavenUser 
       password mavenPassword 
      } 
     } 
    } 
    publications { 
     maven(MavenPublication) { 

      groupId 'com.example.karaf-utils' 
      artifactId 'esa-bootstrapper' 
      version '1.0.0' 

      artifact source: "${projectDir}/kar/example.esa.bootstrapper.kar", extension: 'kar' 

     } 
    } 
} 

il file kar sia correttamente caricato e in nesso posso vedere il descrittore XML atteso:

<dependency> 
    <groupId>com.example.karaf-utils</groupId> 
    <artifactId>esa-bootstrapper</artifactId> 
    <version>1.0.0</version> 
    <type>kar</type> 
</dependency> 

ma purtroppo, durante l'esecuzione del compito publish, ottengo il seguente errore:

gradle :com.example.karaf.subsys.bootstrap:publish 
:com.example.karaf.subsys.bootstrap:generatePomFileForMavenPublication 
:com.example.karaf.subsys.bootstrap:publishMavenPublicationToexample-mavenRepository 
Upload https://nexus.dev.example.io/nexus/content/repositories/example-maven/com/example/karaf-utils/esa-bootstrapper/1.0.0/esa-bootstrapper-1.0.0.kar 
Upload https://nexus.dev.example.io/nexus/content/repositories/example-maven/com/example/karaf-utils/esa-bootstrapper/1.0.0/esa-bootstrapper-1.0.0.kar.sha1 
Upload https://nexus.dev.example.io/nexus/content/repositories/example-maven/com/example/karaf-utils/esa-bootstrapper/1.0.0/esa-bootstrapper-1.0.0.kar.md5 
Upload https://nexus.dev.example.io/nexus/content/repositories/example-maven/com/example/karaf-utils/esa-bootstrapper/1.0.0/esa-bootstrapper-1.0.0.pom 
Could not transfer artifact com.example.karaf-utils:esa-bootstrapper:pom:1.0.0 from/to remote (https://nexus.dev.example.io/nexus/content/repositories/example-maven): Could not write to resource 'com/example/karaf-utils/esa-bootstrapper/1.0.0/esa-bootstrapper-1.0.0.pom' 
:com.example.karaf.subsys.bootstrap:publishMavenPublicationToexample-mavenRepository FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':com.example.karaf.subsys.bootstrap:publishMavenPublicationToexample-mavenRepository'. 
> Failed to publish publication 'maven' to repository 'example-maven' 
    > Failed to deploy artifacts: Could not transfer artifact com.example.karaf-utils:esa-bootstrapper:pom:1.0.0 from/to remote (https://nexus.dev.example.io/nexus/content/repositories/example-maven): Could not write to resource 'com/example/karaf-utils/esa-bootstrapper/1.0.0/esa-bootstrapper-1.0.0.pom' 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

Come posso risolvere questo errore?

+0

se 'https: // nexus.dev.example.io/nexus/content/repositories/example-maven' è davvero la directory che si prevede di distribuire, il problema è probabilmente sul server: l'utente potrebbe non aver scritto accesso. – StephaneM

+0

L'utente sembra avere accesso in scrittura: il file kar stesso viene caricato correttamente dall'attività –

risposta

1

Problema risolto: il punto è che stavo cercando di sovrascrivere un file pom esistente in nexus. Ho cancellato il file kar ma ho dimenticato di rimuovere il pom prima di eseguire il compito gradle.