Je migre un projet java de gradle 2.x vers 5.3.1.
Le dernier problème est qu'aucun artefact (un tar dans notre cas) n'est publié dans un artefact.
La configuration de build.gradle
est
> Task :$MODULE:artifactoryPublish Task ':$MODULE:artifactoryPublish' is not up-to-date because: Task has not declared any outputs despite executing actions. :$MODULE:artifactoryPublish (Thread[Execution worker for ':',5,main]) completed. Took 0.002 secs. :artifactoryDeploy (Thread[Execution worker for ':',5,main]) started. > Task :artifactoryDeploy Task ':artifactoryDeploy' is not up-to-date because: Task has not declared any outputs despite executing actions. Deploying build descriptor to: $OUR_ARTIFACTORY/artifactory/api/build Build successfully deployed. Browse it in Artifactory under $OUR_ARTIFACTORY/artifactory/webapp/builds/$MODULE/1554465369336 :artifactoryDeploy (Thread[Execution worker for ':',5,main]) completed. Took 0.155 secs.
Et dans le module
task('dist', type: Tar) { dependsOn('jar') archiveName "$MODULE-${version}.${extension}" ... } publishing { publications { mavenJava(MavenPublication) { artifact dist { } } } } configurations.archives.artifacts.clear() artifacts { archives dist }
Maintenant quand je fais ./gradlew --info: $ MODULE: artifactoryPublish
il se plaint de sorties manquantes et ne publie pas le tar dans un artificiel.
Comment résoudre ce problème?
subprojects { apply plugin: "com.jfrog.artifactory" project.ext { artifactoryConfig = new File(project.gradle.gradleUserHomeDir, "artifactory.gradle") } if (artifactoryConfig.exists()) { apply plugin: 'maven' apply from: artifactoryConfig } sourceCompatibility = 1.8 repositories { mavenCentral() maven { url $OUR_ARTIFACTORY } } publishing { publications { mavenJava(MavenPublication) { from components.java } } } } artifactory { publish { contextUrl = "${artifactoryBaseUrl}" repository { repoKey = "libs-release-local" username = "${artifactoryUsername}" password = "${artifactoryPassword}" } } resolve { repoKey = 'repos' } }
3 Réponses :
Il s'est avéré que la solution était d'ajouter
artifactoryPublish { publications('mavenJava') }
Pour moi, le problème était que l'URL et les informations d'identification étaient nulles. Cela a abouti au même message d'erreur (la tâche n'a déclaré aucune sortie).
artifactory { contextUrl = artifactoryUrl publish { repository { username = artifactoryPublishUser password = artifactoryPublishPassword
L'indice le plus précieux est un exemple en cours d'exécution
Concernant «il se plaint de sorties manquantes»: cela ne me semble pas suspect en soi, car les tâches en question n'ont pas de sorties basées sur des fichiers. Qu'est-ce que est réellement déployé sur Artifactory? Je pose la question, car elle dit: "Build déployé avec succès."
@Chriki Rien n'est déployé sur l'artefact (la compilation est vide). C'est le problème.
une chance à ce sujet?
@Abhimaan Oui; voir la réponse acceptée.