2014-12-28 28 views
9

Sto tentando di pubblicare il file generato aar della mia libreria Android sul server Apiva Archiva Maven, ma non riesco ancora a farlo funzionare perché esempi sono vecchie o sono per java e non per AndroidCome pubblicare file su Apache Archiva con Gradle

Dopo aver notato che la maggior parte dei metodi degli esempi Gradle sono deprecati, ho trovato questa nuova documentazione:

Gradle Documentation

che descrive come utilizzare la nuova API che sembra sostituire uploadArchives con pubblicazione e così via ....

Quindi questo è ciò che Ive ha ottenuto finora:

apply plugin: 'com.android.library' 
apply plugin: 'maven' 
apply plugin: 'maven-publish' 
android { 
compileSdkVersion 21 
buildToolsVersion "21.1.2" 


defaultConfig { 
    applicationId "com.mycompany.mylibrary" 
    minSdkVersion 9 
    targetSdkVersion 21 
    versionCode 1 
    versionName "1.0" 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
lintOptions { 
    abortOnError false 
} 

} 


dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile 'com.android.support:support-v4:21.0.3' 
    compile 'com.android.support:appcompat-v7:21.0.3' 
} 

task sourceJar(type: Jar) { 
    from sourceSets.main.allJava 
} 

publishing { 

publications { 
    mavenJava(MavenPublication) { 
     groupId 'com.android.mylibrary' 
     artifactId 'MyLibrary' 
     version '1.0.0' 

     from components.java 

     artifact sourceJar { 
      classifier "sources" 
     } 
    } 
} 
repositories { 
    maven { 
     url "myurl" 
     credentials{ 
      username "user" 
      password "password" 
     } 
    } 
} 
} 

La roba di Gradle è come l'inferno per me. Non so cosa sia giusto e cosa sia sbagliato e alcune cose sembrano essere cambiate senza alcun indizio che non è più supportato, il che rende piuttosto difficile risolvere questi problemi ...

Come posso carica automaticamente il file aar generato sul mio Apache Archiva?

risposta

12

risolto da solo

apply plugin: 'com.android.library' 
apply plugin: 'maven' 
apply plugin: 'maven-publish' 
android { 
compileSdkVersion 21 
buildToolsVersion "21.1.2" 


repositories { 
    mavenCentral() 
} 

defaultConfig { 
    minSdkVersion 9 
    targetSdkVersion 21 
    versionCode 1 
    versionName "1.0" 
} 

buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 


dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    provided 'com.android.support:support-v4:21.0.3' 
    provided 'com.android.support:appcompat-v7:21.0.3' 
} 

task sourceJar(type: Jar) { 
    classifier "source" 
} 

publishing { 
    publications { 

     repositories.maven { 
      url 'myurl/repositories/myrepo' 
      credentials { 
       username "user" 
       password "password" 
      } 
     } 

     maven(MavenPublication) { 
      artifacts { 
       groupId 'com.mycompany' 
       artifactId 'mylibrary' 
       version '1.0' 
       artifact 'build/outputs/aar/app-release.aar' 
      } 
     } 
    } 

} 
+1

Che una soluzione semplice ed efficace. Ha funzionato come il fascino :) –

+3

Ma questo non creerà il file pom.xml corretto, ti mancheranno i dati di depndency e quell'inutile – outlying

+0

Non ha nulla a che fare con il processo di compilazione, semplicemente carica il re sul tuo server. Potresti avere un altro problema altrove –