2012-06-25 2 views
13

Tôi đang sử dụng Eclipse 3.7.2 + Android + Maven + m2e và tôi gặp sự cố với thư viện Android được bao gồm qua Maven dưới dạng apklibs. Tôi đã tạo một kịch bản thử nghiệm với hai dự án, mvntest1 (dự án chính) và mvntest2 (dự án thư viện của tôi). Các pom.xml của được bao gồm sau khi văn bản này.Làm cách nào để sử dụng thư viện android (apklibs) với maven và nhật thực?

Cho đến nay rất tốt. Tôi có thể tạo mvntest2 qua bảng điều khiển $ mvn install mà không gặp bất kỳ lỗi nào. Vì vậy, tôi có một apklib trong kho lưu trữ maven địa phương của tôi (~/.m2/repository/mvntest2/mvntest2/0.0.1-SNAPSHOT/mvntest2-0.0.1-SNAPSHOT.apklib).

Nhưng: Tính năng bao gồm không hoạt động. Eclipse không bao gồm các lớp, v.v. của mvntest2 trong mvntest1. Tôi đã làm sạch, cập nhật cấu hình và phụ thuộc và không có gì giúp đỡ.

Tôi đang làm gì sai? Hãy giúp tôi. Nếu một số thông tin bị thiếu, chỉ cần hỏi.

======= 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

Tôi đã gặp vấn đề tương tự và đã viết hướng dẫn cách giải quyết bằng Maven: [Cách tạo nhiều tệp apk Android từ một codebase được tổ chức bởi dự án mô-đun đa Maven] (http://www.devgems.net/? p = 547) – Bevor

Trả lời

15

Hỗ trợ cho các gói phụ thuộc vào gói ứng dụng trong ADT Eclipse là một phần của công việc đang diễn ra cho dự án m2e-android và chưa hoàn thành. Hãy nhận xét về vấn đề này để luôn cập nhật:

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

CẬP NHẬT ngày 26 tháng chín năm 2013: Android Connector cho Maven Eclipse (M2E-android) phiên bản 0.4.3 bây giờ đã được phát hành với sự hỗ trợ đầy đủ cho Android Libraries.