deploy java gradle nexus

java - gradle deploy maven local



Subir las fuentes al repositorio nexus con gradle (3)

Subí exitosamente mis archivos a un repositorio de nexus usando el plugin de Maven para gradle pero no subió las fuentes. Esta es mi configuración:

uploadArchives { repositories{ mavenDeployer { repository(url: "http://...") { authentication(userName: "user", password: "myPassword") } } } }

Busqué y encontré que puedo agregar las fuentes agregando una nueva tarea.

task sourcesJar(type: Jar, dependsOn:classes) { classifier = ''sources'' from sourceSets.main.allSource } artifacts { archives sourcesJar }

Esto funciona bien, pero creo que debe haber una mejor solución al configurar el complemento de Maven, algo como uploadSource = true de esta manera:

uploadArchives { repositories{ mavenDeployer { repository(url: "http://...") { authentication(userName: "user", password: "myPassword") } uploadSources = true } } }


Nexus para guardar artefacto, no código fuente.

Para cargar el artefacto compilado hago:

apply plugin: ''java'' apply plugin: ''maven'' uploadArchives { repositories { mavenDeployer { repository(url: "http://nexus-server:8081/nexus/content/repositories/snapshots") { authentication(userName: "admin", password: "secret") } pom.version = "1.0.0-SNAPSHOT" pom.artifactId = "${project.name}" pom.groupId = "path.to.artifact" } } }

y llamar a la carga desde la consola

$ gradle upload

para código fuente use maven o repositorio git


No hay mejor solución que la que usted mismo describió. El plugin Gradle Maven está cargando todos los artefactos generados en el proyecto actual. Es por eso que tienes que crear explícitamente un artefacto de "fuentes".

La situación tampoco cambia cuando se usa el nuevo complemento de maven-publish . Aquí, también necesita definir explícitamente artefactos adicionales:

task sourceJar(type: Jar) { from sourceSets.main.allJava } publishing { publications { mavenJava(MavenPublication) { from components.java artifact sourceJar { classifier "sources" } } } }

La razón es que gradle se trata más de ser una herramienta de compilación general y no de proyectos Java puros.


Puedes usar el gradle-nexus-plugin

Para utilizar el complemento, agregue las líneas a continuación e importe el complemento.

buildscript { repositories { mavenLocal() jcenter { url "http://jcenter.bintray.com/" } } dependencies { classpath ''com.bmuschko:gradle-nexus-plugin:2.3'' } } apply plugin: ''com.bmuschko.nexus''

Agregue esta sección, donde configurará la url para implementar

nexus { sign = false repositoryUrl = ''http://localhost:8081/nexus/content/repositories/releases/'' snapshotRepositoryUrl = ''http://localhost:8081/nexus/content/repositories/internal-snapshots/'' }

Nota: debe tener en ~ / .gradle / gradle.properties

nexusUsername = deployment nexusPassword = deployment123