Les librairies sous Android sont pour la plupart déployées sous JCenter, cela permet à tout à chacun d’y avoir accès directement depuis son gradle, et d’importer une multitude d’extensions super pratiques dans son projet en peu de lignes.
Je vais par la suite vous montrer comment publier une librairie Android, dans mon cas ExpectAnim, afin que tout développeur puisse l’importer dans son projet en utilisant gradle.
compile 'com.github.florent37:expectanim:1.0.2'
Bintray.com
JCenter est un dépôt Maven public, accessible directement depuis la configuration des projets Android.
Il est hébergé par le site Bintray.com.
S’inscrire
Vous l’aurez compris, la première étape afin de distribuer votre librairie sur JCenter est donc de vous inscrire sur Bintray !
Récupérer son Api Key
Il nous faut maintenant récupérer notre clé d’API, ce qui nous permettra d’uploader nos artifact sur bintray
Rendrez-vous dans l’édition de votre profil, puis clickez sur API Key
Ici, ma clé d’api est 53fd629a7c75e0da9b2fe13ff908e2d4740cefe7
Configurer votre projet Android
Ajoutez ensuite votre nom d’utilisateur ainsi que votre apikey dans votre fichier local.properties
bintray.user=florentchampigny bintray.apikey=53fd629a7c75e0da9b2fe13ff908e2d4740cefe7
Nous utiliserons le plugin gradle-bintray-plugin afin de pousser nos librairies directement depuis Android Studio, pour cela, ajoutons la dépendance dans notre fichier projet build.gradle
buildscript { repositories { jcenter() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.2.3' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3' } }
Téléchargez ensuite 3 fichiers, et placez les dans votre répertoire gradle/
bintray-android-v1.gradle
bintray-java-v1.gradle
install-v1.gradle
Il ne reste qu’à décrire notre artifact au sein de notre module, pour cela, écrivez ces lignes à la fin du fichier build.gradle de votre module :
ext { bintrayRepo = 'maven' //le nom de votre repo maven créé dans bintray bintrayName = 'ExpectAnim' //le nom que vous souhaitez donner à votre projet sur bintray orgName = 'florentchampigny' //votre nom d'utilisateur publishedGroupId = 'com.florentchampigny' //aaaa : le nom de groupe de la librarie artifact = 'expectanim' //BBBB : le nom de la librairie libraryVersion = "1.0.2" //la version de la librairie //la librairie sera donc : aaaa:BBBB:version libraryName = 'ExpectAnim' libraryDescription = 'Animate views easily' siteUrl = 'https://github.com/florent37/ExpectAnim' gitUrl = 'https://github.com/florent37/ExpectAnim.git' developerId = 'florentchampigny' developerName = 'Florent Champigny' developerEmail = 'champigny.florent@gmail.com' licenseName = 'The Apache Software License, Version 2.0' licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt' allLicenses = ["Apache-2.0"] } apply from: rootProject.file('gradle/install-v1.gradle') apply from: rootProject.file('gradle/bintray-android-v1.gradle')
Vous pouvez enfin pousser votre artifact sur bintray en utilisant la task gradle bintrayUpload
./gradlew bintrayUpload
Votre librairie est enfin déposée sur votre maven
Déployer votre librairie sur jcenter
Il ne reste plus qu’à demander à bintray de déployer notre librairie sur JCenter, pour cela il suffit de cliquer sur le nom du projet, ici ExpectAnim, puis sur Add to JCenter
Une fois cette requête acceptée (vous recevrez un email pour vous avertir), les développeurs pourront utiliser votre librairie directement depuis JCenter
compile 'com.florentchampigny:expectanim:1.0.2'
N’hésitez pas à partager le plus possible vos librairies github sur Jcenter, cela ne fait que renforcer la communauté android, et facilite l’entraide entre développeurs.