2012-11-23 6 views
3

저는 새로운 maven 사용자입니다. 나는 roboguice와 actionbarsherlock 의존으로 구성된 내 안드로이드 응용 프로그램을 만들고 싶습니다. 내 문제는 actionbarsherlock 의존입니다. 모듈 pom.xml 파일에Maven에서 actionbarsherlock 의존성을 올바르게 설정하는 방법은 무엇입니까?

<dependency> 
     <groupId>com.actionbarsherlock</groupId> 
     <artifactId>actionbarsherlock</artifactId> 
     <version>4.2.0</version> 
     <type>apklib</type> 
    </dependency> 

    <!-- Let Roboguice and Sherlock work together --> 
    <dependency> 
     <groupId>com.github.rtyley</groupId> 
     <artifactId>roboguice-sherlock</artifactId> 
     <version>1.4</version> 
    </dependency> 

까지 포함 시키지만 내 편집기는 actionbarsherlock 뷰 클래스를 가져올 수 없습니다.

어떻게 올바르게 설정 종속 ActionBarSherlock의보기를/패키지에서 받는다는에서 탐색기는 ActionBarSherlock의 항아리가없는 dependenceies하지만 파일은 대상/압축 풀기/apklibs/com.actionbarsherlock_actionbarsherlock_apklib_4.2.0/SRC/COM/ActionBarSherlock의에 놓친? ??

내 개발 IDE는 일식입니다. 이클립스에 m2e에 대한 m2e, android configuration을 설치했고 안드로이드 메이븐 프로젝트를 가져올 수 있습니다.

내 프로젝트에는 응용 프로그램 및 facebook sdk의 두 모듈이 있습니다. 내가 pom.xml 파일에서 15

에 안드로이드 버전을 설정 :

<?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> 
<artifactId>application</artifactId> 
<name>Grand</name> 
<packaging>apk</packaging> 

<parent> 
    <groupId>pl.grand</groupId> 
    <artifactId>Grand</artifactId> 
    <version>1.0.0</version> 
    <relativePath>../pom.xml</relativePath> 
</parent> 

<dependencies> 
    <dependency> 
     <groupId>com.google.android</groupId> 
     <artifactId>android</artifactId> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.roboguice</groupId> 
     <artifactId>roboguice</artifactId> 
     <version>2.0</version> 
    </dependency> 

    <dependency> 
     <groupId>com.actionbarsherlock</groupId> 
     <artifactId>actionbarsherlock</artifactId> 
     <version>4.2.0</version> 
     <type>apklib</type> 
    </dependency> 

    <!-- Let Roboguice and Sherlock work together --> 
    <dependency> 
     <groupId>com.github.rtyley</groupId> 
     <artifactId>roboguice-sherlock</artifactId> 
     <version>1.4</version> 
    </dependency> 

    <!-- facebook sdk --> 
    <dependency> 
     <groupId>com.facebook.android</groupId> 
     <artifactId>facebook-android-sdk</artifactId> 
     <version>1.0.1</version> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
      <artifactId>android-maven-plugin</artifactId> 
      <extensions>true</extensions> 
      <configuration> 
       <sdk> 
        <platform>15</platform> 
       </sdk> 
      </configuration> 
     </plugin> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

내가 그에 의해 몇 번 잡았 봤는데
+1

apklib는 명령 줄에서 작동합니다. 이클립스에서 사용하려면 Actionbarsherlock 소스 프로젝트를 이클립스로 가져와야한다. 일반적인 안드로이드 라이브러리 프로젝트와 비슷하다. 자세한 내용은 [이 답변] (http://stackoverflow.com/questions/)을 참고하기 바란다. 8831481/apklib-do-not-get-in-maven-repo/8831891 # 8831891). – yorkw

답변

4

, 추가 실제로 야지 APKLIB 모두와 JAR은 프로젝트 (APKLIb가 리소스와 모든 것을 가져 오는 곳, Android 라이브러리 프로젝트의 일부)에 종속되며 JAR은 컴파일 된 클래스를 제공합니다.

효과에

: 프로젝트를 빌드 할 때

<dependency> 
    <groupId>com.actionbarsherlock</groupId> 
    <artifactId>actionbarsherlock</artifactId> 
    <version>4.2.0</version> 
    <type>apklib</type> 
</dependency> 

<dependency> 
    <groupId>com.actionbarsherlock</groupId> 
    <artifactId>actionbarsherlock</artifactId> 
    <version>4.2.0</version> 
    <type>jar</type> 
</dependency> 
관련 문제