2012-06-25 3 views
13

Ich benutze Eclipse 3.7.2 + Android + Maven + m2e und ich habe ein Problem mit Android-Bibliotheken über Maven als apklibs. Ich baute ein Testszenario mit zwei Projekten, mvntest1 (das Hauptprojekt) und mvntest2 (mein Bibliotheksprojekt). Die pom.xml sind nach diesem Text enthalten.Wie verwende ich Android-Bibliotheken (apklibs) mit Maven und Eclipse?

So weit so gut. Ich kann mvntest2 über die Konsole $ mvn install ohne Fehler bauen. Daher habe ich eine Apklib in meinem lokalen Maven Repository (~/.m2/repository/mvntest2/mvntest2/0.0.1-SNAPSHOT/mvntest2-0.0.1-SNAPSHOT.apklib).

Aber: Das Einschließen funktioniert nicht. Eclipse enthält nicht die Klassen usw. von mvntest2 in mvntest1. Ich habe geputzt, die Konfiguration und Abhängigkeiten aktualisiert und nichts geholfen.

Was mache ich falsch? Bitte helfen Sie. Wenn einige Informationen fehlen, fragen Sie einfach.

======= mvntest1/pom.xml =====

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>mvntest1</groupId> 
<artifactId>mvntest1</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>apk</packaging> 
<name>mvntest1</name> 

<dependencies> 
    <dependency> 
     <groupId>com.google.android</groupId> 
     <artifactId>android</artifactId> 
     <version>2.1.2</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>mvntest2</groupId> 
     <artifactId>mvntest2</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
     <type>apklib</type> 
    </dependency> 
</dependencies> 
<build> 
    <finalName>${project.artifactId}</finalName> 
    <sourceDirectory>src</sourceDirectory> 
    <plugins> 
     <plugin> 
      <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
      <artifactId>android-maven-plugin</artifactId> 
      <version>3.0.0</version> 
      <configuration> 
       <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> 
       <assetsDirectory>${project.basedir}/assets</assetsDirectory> 
       <resourceDirectory>${project.basedir}/res</resourceDirectory> 
       <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> 
       <sdk> 
        <platform>7</platform> 
       </sdk> 
       <deleteConflictingFiles>true</deleteConflictingFiles> 
       <undeployBeforeDeploy>true</undeployBeforeDeploy> 
      </configuration> 
      <extensions>true</extensions> 
     </plugin> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

====== mvntest2/pom.xml =====

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>mvntest2</groupId> 
    <artifactId>mvntest2</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>apklib</packaging> 
    <name>mvntest2</name> 

    <dependencies> 
     <dependency> 
      <groupId>com.google.android</groupId> 
      <artifactId>android</artifactId> 
      <version>2.1.2</version> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 
    <build> 
     <finalName>${project.artifactId}</finalName> 
     <sourceDirectory>src</sourceDirectory> 
     <plugins> 
      <plugin> 
       <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
       <artifactId>android-maven-plugin</artifactId> 
       <version>3.0.0</version> 
       <configuration> 
        <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> 
        <assetsDirectory>${project.basedir}/assets</assetsDirectory> 
        <resourceDirectory>${project.basedir}/res</resourceDirectory> 
        <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> 
        <sdk> 
         <platform>7</platform> 
        </sdk> 
        <deleteConflictingFiles>true</deleteConflictingFiles> 
        <undeployBeforeDeploy>true</undeployBeforeDeploy> 
       </configuration> 
       <extensions>true</extensions> 
      </plugin> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 
+0

Ich hatte das gleiche Problem und schrieb eine Anleitung, wie man das mit Maven lösen kann: [Wie man mehrere Android apk-Dateien aus einer Codebase erstellt von einem Maven-Multimodul-Projekt erstellt] (http://www.devgems.net/? p = 547) – Bevor

Antwort

15

Unterstützung für apklib Abhängigkeiten in ADT Eclipse ist Teil der laufenden Arbeit für das m2e-android Projekt und ist noch nicht abgeschlossen. Bitte Kommentar zu diesem Thema bleiben aktualisiert:

https://github.com/rgladwell/m2e-android/issues/8

UPDATE 26. September 2013: Android Connector für Maven Eclipse-(M2e-android) Version 0.4.3 ist jetzt mit voller Unterstützung für Android Bibliotheken freigegeben.