2016-01-12 13 views

risposta

6

L'ho capito con l'aiuto di Ryan Vanderwerf allo http://rvanderwerf.blogspot.com/2015/07/how-to-publish-grails-3-plugin.html che scrive che ci sono un sacco di dipendenze di avvio automatico che non hanno versioni in esse e che fanno sì che il gradle diventi pazzo. Per risolvere essa, striscia fuori tutte le dipendenze nel pom che non ha versioni:

publishing { 
    publications { 
     mavenJar(MavenPublication) { 
      pom.withXml { 
       def pomNode = asNode() 
       pomNode.dependencyManagement.replaceNode {} 

       // simply remove dependencies without a version 
       // version-less dependencies are handled with dependencyManagement 
       // see https://github.com/spring-gradle-plugins/dependency-management-plugin/issues/8 for more complete solutions 
       pomNode.dependencies.dependency.findAll { 
        it.version.text().isEmpty() 
       }.each { 
        it.replaceNode {} 
       } 
      } 
      from components.java 
     } 
    } 
    repositories { 
     maven { 
      credentials { 
       username "username" 
       password "password" 
      } 
      url "http://localhost/repo" 
     } 
    } 
} 

quindi è possibile utilizzare grails publish-plugin o gradle publish di pubblicare il plugin

correlate, al fine di domanda: Grails 3 - How to publish to Artifactory

+0

la soluzione funziona per me. Al risultato mostra errore 403.Ma in artefatto vengono presentati tutti i file – demon101

-2

In BuildConfig.groovy

grails.project.dependency.distribution = { 
    remoteRepository(id: '<repo name>', url: '<url to your nexus repo>') 
} 

Poi:

graal pulite

graal compilare

graal Maven-distribuire --repository = nome repo

+0

graal 3 non ha un BuildConfig.groovy –

0

In Grails 3.0.11, io uso il target Gradle publishToMavenLocal per il mio sviluppo locale. C'è anche un altro obiettivo publishMavenPublicationToMavenRepository. Questo sembra provenire dal plugin gradle:

apply plugin: 'maven-publish' 

Sembra essere nel plugin standard build.gradle.

(Modifica: aggiunta di note sull'utilizzo di esperti locali).

Dopo aver riletto la tua domanda e il commento qui sotto, non penso che sia quello che stai cercando. Sembra che tu voglia una normale pubblicazione in un repository sul tuo sistema. publishMavenPublicationToMavenRepository potrebbe gestirlo. Quello che ho descritto sopra utilizza la cache Maven locale per conservare un'istantanea di un plug-in che è possibile utilizzare sulla propria macchina in un'applicazione.

Questo funziona per me quando si sviluppa un plug-in utilizzato nella mia applicazione.

Non ho creato un repository locale. Il plug-in gradle sopra (maven-publish) ha un'attività publishToMavenLocal che pubblicherà il plug-in di Grails nella cache di maven locale per lo sviluppo locale.

Si memorizza file .zip del plugin nella directory della cache .m2:

C:\Users\xyz\.m2\repository\org\whatever\plugins\pluginName\0.3-SNAPSHOT 

Quindi, è possibile utilizzare il plugin in un'applicazione Grails sulla vostra macchina.

Problemi correlati