¿Cómo publico un plugin de Grails 3 en mi repositorio de nexus local?
grails-plugin grails-3.0 (3)
La ejecución grails publish-plugin
publicación de griales parece no hacer nada, y la única documentación que pude encontrar fue sobre publicar en bintray.
[editar:]
Puedo publicar el complemento a través de gradle publish
, pero me preguntaba si había una manera de hacerlo, y me pregunto qué hace realmente grails publish-plugin
: /
En BuildConfig.groovy
grails.project.dependency.distribution = {
remoteRepository(id: ''<repo name>'', url: ''<url to your nexus repo>'')
}
Entonces:
Grails limpia
Grails compila
mails-deploy de grises --repository = nombre de repo
En Grails 3.0.11, uso el objetivo de gradle publishToMavenLocal para mi desarrollo local. También hay otro objetivo publishMavenPublicationToMavenRepository . Esto parece provenir del plugin de Gradle:
apply plugin: ''maven-publish''
Parece estar en el plugin estándar build.gradle.
(Editar: Agregar notas sobre el uso de maven local).
Después de volver a leer su pregunta y comentario a continuación, no creo que sea eso lo que está buscando. Parece que quieres una publicación normal en un repositorio en tu sistema. publishMavenPublicationToMavenRepository
puede manejar eso. Lo que describí anteriormente es usar la memoria caché Maven local para contener una instantánea de un complemento que puede usar en su máquina en una aplicación.
Esto funciona para mí al desarrollar un complemento utilizado en mi aplicación.
No creé un repositorio local. El plugin de gradle anterior ( maven-publish
) tiene una tarea publishToMavenLocal
que publicará el plugin de Grails en la memoria caché maven local para el desarrollo local.
Almacena el archivo .zip del complemento en el directorio de caché .m2:
C:/Users/xyz/.m2/repository/org/whatever/plugins/pluginName/0.3-SNAPSHOT
Luego, puede usar el complemento en una aplicación Grails en su máquina.
Lo descubrí con la ayuda de Ryan Vanderwerf en http://rvanderwerf.blogspot.com/2015/07/how-to-publish-grails-3-plugin.html quien escribe que hay un montón de dependencias de arranque de primavera que no tienen versiones en ellos y eso hace que Gradle se asuste. Para solucionarlo, elimine todas las dependencias en el pom que no tiene versiones:
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"
}
}
}
entonces puedes usar grails publish-plugin
o gradle publish
para publicar tu plugin
pregunta SO relacionada: Grails 3 - Cómo publicar en Artifactory