How can one go about setting up a local maven repo.
WARNUNG: das folgende Rezept funktioniert, aber wahrscheinlich Verbesserung verwenden konnte, wie ich weit von einem Maven Experte bin. Diesen Ansatz habe ich letztes Jahr für meine CWAC-Bibliotheken ausgearbeitet.
Schritt # 1: Fügen Sie classpath 'com.github.dcendents:android-maven-plugin:1.0'
zu Ihrem buildscript
dependencies
Block in Ihrer Bibliothek build.gradle
-Datei des Projekts. Fügen Sie auch version
und group
Anweisungen hinzu, um diese Informationen zu Ihrem AAR bereitzustellen.
Schritt # 2: Verwenden Sie gradle install
, um das AAR zu kompilieren und es im lokalen Maven-Standardrepository zu installieren.
Schritt # 3: Normalerweise würden Sie mavenLocal()
zum dependencies
Block Ihres Anwendungsprojekts hinzufügen, um den AAR über seine Artefakt-ID abzurufen. Das könnte wieder funktionieren, obwohl es für ein bisschen gebrochen war. Verwenden Sie stattdessen maven { url "${System.env.HOME}/.m2/repository" }
als eine kurzfristige Problemumgehung.
So zum Beispiel Ihre Bibliotheksprojekt build.gradle
Datei enthält möglicherweise:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
classpath 'com.github.dcendents:android-maven-plugin:1.0'
}
}
apply plugin: 'android-library'
apply plugin: 'android-maven'
version '0.4.0'
group 'some.likely.group.name.goes.here'
repositories {
mavenCentral()
}
dependencies {
compile 'com.squareup.picasso:picasso:2.2.0'
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
// as normal
}
Sie gradle install
verwenden würde die JAR auf Ihrem lokalen Maven-Repo zu veröffentlichen. Ihr Anwendungsprojekt würde dann die folgenden Sachen in seinem build.gradle
:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
maven { url "${System.env.HOME}/.m2/repository" } // mavenLocal()
}
dependencies {
compile 'some.likely.group.name.goes.here:name-of-library:0.4.0'
}
android {
// as normal
}
, wo Sie ersetzen:
some.likely.group.name.goes.here
mit etwas
0.4.0
mit einer Versionsnummer in XYZ-Format
name-of-library
wird der Verzeichnisname sein enthält das Android-Bibliothek-Projekt (beispielsweise presentation
oder foo
)
Wie sind Sie mit der AAR im anderen Projekt? – CommonsWare
So: 'Repositorys { flatDir { dirs 'libs'} mavenCentral() }' und dann mit ihnen die üblichen groupId Format – redDragonzz
Dies soll das erwartete Verhalten nehme ich an sein: https: // groups.google.com/forum/#!topic/adt-dev/ZZ8AVUZVw! Ich denke, ich muss das Picasso-Glas herunterladen und dann wird Gradle es automatisch einschließen, sonst tut es nicht. Werde es versuchen und eine Antwort posten – redDragonzz