J'ai un projet mis en place avec CI et la construction gradle, et je veux ajouter une tâche progressive pour publier un pot quelque part nous pouvons y accéder chaque fois qu'une construction de CI s'exécute. Je ne sais même pas (ou ne me soucie pas) du service sur lequel je téléchargerais; tout fonctionne.Comment publier jar quelque part sur internet via la tâche gradle?
2
A
Répondre
0
Vous pouvez envisager de mettre un dépôt GitHub, juste pour des objets d'édition (ce que vous construisez comme GitHub releases)
En gradle, vous pouvez utiliser:
0
Vous pouvez utiliser une sorte d'artefact ory, comme nexus sonatype ou jfrog artificiel. Ils sont les principaux blogs de construction d'une bonne architecture CI.
https://www.jfrog.com/article/continuous-integration-systems/
0
Vous pouvez publier bintray.com (de JFrog).
Cela vous donnera une prise en pension vous pouvez utiliser comme ceci:
repositories {
maven {
url 'https://dl.bintray.com/yourOrg/yourRepo/'
}
}
Alors si vous obtenez sérieux, la synchronisation automatique sur dépôt jcenter()
est un simple clic et l'approbation loin.
Pour télécharger via la tâche gradle:
plugins {
id 'com.jfrog.bintray' version '1.7.3'
}
apply plugin: 'maven-publish'
group 'com.example' //your group ID
version '0.1' //your version
//required for jcenter
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
//required for jcenter
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives jar
archives sourcesJar //required for jcenter
archives javadocJar //required for jcenter
}
publishing {
publications {
MyPublication(MavenPublication) {
groupId group
artifactId 'Base58'
version project.version
//again, sources and javadoc required for jcenter
artifact("$buildDir/libs/projectName-${project.version}-sources.jar") {
classifier = 'sources'
}
artifact("$buildDir/libs/projectName-${project.version}-javadoc.jar") {
classifier = 'javadoc'
}
artifact("$buildDir/libs/projectName-${project.version}.jar")
}
}
}
// To upload a new version
// ./gradlew clean
// ./gradlew build bintrayUpload -Puser=user -Pkey=APIKEY
bintray {
user = project.ext.properties.user
key = project.ext.properties.key
publications = ['MyPublication']
pkg {
repo = 'YourBinTrayRepo'
name = 'YourBinTrayProjectName'
userOrg = 'YourBinTrayOrganizationIfApplicable'
licenses = //any licences applicable
vcsUrl = 'URL to source'
version project.version
}
}
donc à télécharger:
./gradlew clean
./gradlew build bintrayUpload -Puser=user -Pkey=APIKEY
Sautez ensuite sur bintray frapper publier.