2014-12-28 19 views
9

Ich versuche, die generierte aar Datei meiner Android-Bibliothek zu meinem Apache Archiva Maven Server zu veröffentlichen, aber ich schaffe es noch nicht arbeiten, weil entweder die Beispiele veraltet sind oder sie sind für java und nicht für androidWie man aar Datei auf Apache Archiva mit Gradle veröffentlicht

Nachdem ich bemerkte, dass die meisten Methoden der gradle Beispiele sind veraltet, fand ich diese neue Dokumentation:

Gradle Documentation

die beschreibt, wie die neue API verwenden, die uploadArchives mit veröffentlichen und so weiter ....

Das ist also zu ersetzen scheint, was Ive so weit gekommen:

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" 
     } 
    } 
} 
} 

Das Gradle Zeug ist wie die Hölle für mich. Ich weiß nicht, was richtig ist und was falsch ist, und einige Dinge scheinen sich ohne Hinweise zu ändern, dass es nicht mehr unterstützt wird.

Wie kann ich die generierte aar-Datei automatisch auf meinen Apache-Archiv hochladen?

Antwort

12

es selbst

Gelöst
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

Was für eine einfache und effektive Lösung. Arbeitete wie Charme :) –

+3

Aber das wird nicht richtig pom.xml Datei bauen, werden Sie Dependency-Daten und diese nutzlos – outlying

+0

Es hat nichts mit dem Build-Prozess zu tun, es lädt nur die aar auf Ihren Server. Möglicherweise haben Sie ein anderes Problem an anderer Stelle –