2014-12-28 24 views
9

Próbuję opublikować wygenerowany plik aar z mojej biblioteki Android na mój serwer Apache Archiva Maven, ale nie udało mi się go jeszcze uruchomić, ponieważ albo Przykładami są nieaktualne czy są one dla java a nie dla androidJak opublikować plik AAR do Apache Archiva z Gradle

Po zauważeniu, że większość metod z Gradle przykładami są nieaktualne, znalazłem tę nową dokumentację:

Gradle Documentation

który opisuje jak korzystać z nowego interfejsu API, który wydaje się zastąpić uploadArchives z publikowania i tak dalej ....

Więc to, co Ive got do tej pory:

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

Rzeczy z Gradle są dla mnie jak piekło. Nie wiem, co jest dobre, a co nie, a niektóre rzeczy wydają się być zmieniane bez żadnych wskazówek, że nie jest już wspierany, co sprawia, że ​​trudno jest rozwiązać te problemy ...

Jak mogę automatycznie przesłać wygenerowany plik aar do mojego Apache Archiva?

Odpowiedz

12

rozwiązać go przez siebie

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

Jakie to proste i skuteczne rozwiązanie. Pracował jak urok :) –

+3

Ale to nie zbuduje właściwego pliku pom.xml, stracisz dane dependencji, a to bezużyteczne – outlying

+0

Nie ma nic wspólnego z procesem kompilacji, po prostu ładuje aar na twój serwer. Możesz mieć inny problem gdzie indziej. –

Powiązane problemy