Seiten

Samstag, 16. Juni 2012

Android: Admob-SDK (oder andere Bibliotheken) mit Maven nutzen

Wer Android-Entwicklung betreibt wird wissen das der komplette Build einer App standardmäßig auf Ant aufgebaut ist. Wer aber lieber (so wie ich) mit Maven arbeitet wird schnell auf das Problem stoßen, dass Bibliotheken nicht in den globalen Repositories zur Verfügung gestellt sind. Zum Beispiel das Admob SDK von Google steht nur als Jar zum Download bereit, welches ich hier als Beispiel nehme. Die Vorgehensweise funktioniert aber genauso mit jeder anderen Bibliothek. Prinzipiell hat man mehrere Möglichkeiten das mit Maven trotzdem hinzubekommen:

  1. Die Bibliothek auf ein eigenes Repository hochladen (ist für Firmen interessant die bspw. einen eigenen Artifactory- oder Nexus-Server zur Verfügung haben)
  2. Die Bibliothek ins Projekt mit aufnehmen und relativ mit dem Scope system und dem systemPath-Tag ins Projekt einbinden (ist imho ein Rückschritt was die Abhängigkeitenverwaltung in Maven angeht und muss außerdem für jedes Projekt wiederholt werden)
  3. Meine präferierte Möglichkeit ist die Installation in das lokale Repository auf die ich nun näher eingehen will. 
Zuallererst laden wir uns das Admob-SDK (zur Zeit ist Version 6.0.1 aktuell) und legen es in ein beliebiges Verzwichnis. In diesem Verzeichnis legen wir zusätzlich eine Datei mit dem Namen pom.xml an und füllen Sie mit folgendem Inhalt:


    4.0.0
    com.blogspot.problemexterminator
    install-admob
    1.0.0
    
    
        install:install-file
        
            
                org.apache.maven.plugins
                maven-install-plugin
                2.3.1
                
                    GoogleAdMobAdsSdk-6.0.1.jar
                    com.google.ads
                    admob
                    jar
                    6.0.1
                
            
        
    

Es wird in dieser Pom einfach nur das install-Plugin für die Installation in das lokale Repository konfiguriert. Wichtig ist, dass folgende Tags (innerhalb <configuration> richtig definiert sind:

  • <file> Dateipfad der heruntergeladenen Jar (relativ zur Pom)
  • <groupId> - frei wählbar, über diesen wird später in den anderen Poms das SDk referenziert
  • <artifactId>  - frei wählbar, über diesen wird später in den anderen Poms das SDk referenziert
  • <version> - ebenfalls frei wählbar, jedoch sollte dies mit der Version des SDK übereinstimmen
Jetzt muss einfach nur mit der Kommandozeile zum richtigen Ordner navigiert werden und "mvn" ausgeführt werden:



Da das Default-Goal in der Pom bereits auf install-file gesetzt ist, muss hier nichts weiter hinzugefügt werden und Admob ist in eurem lokalen Repository.

 Nun kann in jedem beliebigen Projekt und in jedem beliebigen Scope Admob ganz normal referenziert und verwendet werden:


....
   
        
        ....
            
                com.google.ads
                admob
                6.0.1
            
        
    
Wie bereits erwähnt ist wichtig, dass beim Referenzieren die artifactId, groupId und die Versionsnummer aus der vorherigen Pom übereinstimmt.

Das Beispiel für die Installation von Admob ins lokale Repository steht hier zum Download bereit, lediglich mvn muss noch selbst ausgeführt werden.

Viel Spaß damit. ;)


1 Kommentar: