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.