IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

JCenter is the place to find and share popular Apache Maven packages for use by Maven, Gradle, Ivy, SBT, etc. For the most comprehensive collection of artifacts, point your Maven at: http://jcenter.bintray.com Want to distribute your own packages through JCenter? You can link your package by clicking the "Include My Package" button. And if you're into legacy, you can even synchronize your packages directly to Maven Central.

jcenter() is a superset of mavenCentral(). Have a look at https://bintray.com/bintray/jcenter for more details. The jcenter guys claim, that they have a better performance than maven central.

Android Studio

Vegeu Android Studio i Gradle. Jcenter és el repositori per defecte que apareix als fitxers Gradle d'Android Studio.

Afegir/Publicar llibreries a Jcenter (upload artifact)

Requeriments. Generar els JavaDoc i els source JARs

Cal tenir generats els JavaDocs del nostre projecte. Podeu utilitzar el plugin android-maven-plugin afegint la línia:

classpath 'com.github.dcendents:android-maven-plugin:1.2'

Al fitxer build.gradle del projecte.

IMPORTANT: recordeu que hi ha com a mínim dos fitxers build.gradle. Heu de tocar momés el del projectes i no pas el de cap mòdul, app o llibreria

Ara si al fitxer gradle del vostre projecte cal que quedi de la següent forma (canvieu el que pertoqui com la versió, siteUrl i gitURL,):

apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'

// This is the library version used when deploying the artifact
version = "1.0.0"

android {
   compileSdkVersion 21
   buildToolsVersion "21.1.2"
   resourcePrefix "fuzzydatetime__"

   defaultConfig {
       minSdkVersion 9
       targetSdkVersion 21
       versionCode 1
       versionName version

   }
   buildTypes {
   }
}

def siteUrl = 'https://github.com/izacus/FuzzyDateFormatter'      // Homepage URL of the library 
def gitUrl = 'https://github.com/izacus/FuzzyDateFormatter.git'   // Git repository URL
group = "<maven group id>"                                        // Maven Group ID for the artifact


install {
   repositories.mavenInstaller {
     // This generates POM.xml with proper parameters
       pom {
           project {
               packaging 'aar'

               // Add your description here
               name '<Your library description>'
               url siteUrl

               // Set your license
               licenses {
                   license {
                       name 'The Apache Software License, Version 2.0'
                       url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                   }
               }
               developers {
                   developer {
                       id '<your user ID>'
                       name '<your name>'
                       email '<your email>'
                   }
               }
               scm {
                   connection gitUrl
                   developerConnection gitUrl
                   url siteUrl

               }
           }
       }
   }
}

dependencies {
  ..YOUR DEPENDENCIES HERE!
}

task sourcesJar(type: Jar) {
   from android.sourceSets.main.java.srcDirs
   classifier = 'sources'
}

task javadoc(type: Javadoc) {
   source = android.sourceSets.main.java.srcDirs
   classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}

task javadocJar(type: Jar, dependsOn: javadoc) {
   classifier = 'javadoc'
   from javadoc.destinationDir
}
artifacts {
   archives javadocJar
   archives sourcesJar
}

Ara ja podeu executar la tasca install:

$ ./gradlew install 

I s'instal·larà el AAR al repositori M2



Procés pas a pas

El primer pas es crear un compte a:

https://bintray.com/

Si teniu compte de github podeu utilitzar el compte de github. Us agafarà les dades de github (inclosa la foto i altres). Ara cal obtenir una API key:

  • Feu click a la vostra foto del perfil de bintray.
  • Feu click a Edit
  • Aneu a l'apartat API key
  • Feu click a show i ja teniu l'API key

Ara cal afegir un plugin de Gradle que ens permetrà tenir una tasca Gradle que pugui el nostre artifact a Jcenter. El plugin és gradle-bintray-plugin:

com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0

Per això cal afegir la línia:

classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'

al fitxer build.gradle del projecte. IMPORTANT: no afegiu la línia al build.gradle del mòdul!

buildscript {
   repositories {
       jcenter()
   }
   dependencies {
       classpath 'com.android.tools.build:gradle:1.0.0'
       classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'
       classpath 'com.github.dcendents:android-maven-plugin:1.2'
       // NOTE: Do not place your application dependencies here; they belong
       // in the individual module build.gradle files
   }
}
...

Ara si al fitxer build.gradle de la llibreria afegiu:

Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())

bintray {
   user = properties.getProperty("bintray.user")
   key = properties.getProperty("bintray.apikey")

   configurations = ['archives']
   pkg {
       repo = "maven"
       name = "<Your library name>"
       websiteUrl = siteUrl
       vcsUrl = gitUrl
       licenses = ["Apache-2.0"]
       publish = true
   }
}

{{nota|Canvieu Your library name> pel nom de la vostra llibreria, establiu també la URL de la vostra llibreria (websiteUrl) i la URL del codi font a github (vcsUrl ) i si cal canvieu també la llicència }

IMPORTANT: Les dades d'accés a bintray han de ser privades! Poseu aquestes dades a un fitxer que sigui ignorat per git, es recomana local.properties

bintray.user=<your bintray username> 
bintray.apikey=<your bintray API key>

Ara ja es pot pujar la llibreria amb la tasca de Gradle bintrayUpload

./gradew bintrayUpload

El primer cop cal revisar el que puguem anant a la web de bintray i fent click al repositori Maven Central.

Podeu trobar un exemple a la llibreria FuzzyDateFormatter:

https://github.com/izacus/FuzzyDateFormatter 

Recursos:

Vegeu també

Enllaços externs