2014-09-05 2 views
0

저는 Gradle을 사용한 Android 및 종속성 관리 작업이 새로 도입되었습니다. 저는 Java의 개발자이고 일반적으로 Maven을 사용하여 종속성을 관리합니다.Android에서 Gradle을 통한 종속성 관리

조사 나는 Gradle이 이제 Android의 종속성 관리라는 것을 알았습니다. 나는 보통 서버 측에서 레이어로 작업한다. 나는 클라이언트 측과 통신하기 위해 클라이언트 프로젝트를 수행했는데,이 경우 클라이언트 애플리케이션은 안드로이드 애플리케이션이다. 내 클라이언트 jar 파일을 Android 프로젝트에 종속성으로 추가해야합니다.

사실 저는 Archiva가있는 로컬 저장소가 있습니다. pom.xml에서 보통 저장소 태그에 로컬 저장소를 선언했습니다.이 경우 프로젝트를 종속성으로 포함 할 수 있습니다.

Gradle에서 가능합니까?

나는 이것을했지만, 안드로이드 에뮬레이터에서 프로젝트를 실행하면 프로젝트가 실패합니다.

// 모든 하위 프로젝트/모듈에 공통된 구성 옵션을 추가 할 수있는 최상위 빌드 파일.

// Build Configuration 
buildscript { 
    // Repositories 
    repositories { 
     mavenLocal() 
     mavenCentral() 
    } 
    // Dependencies 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.12.2' 
     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

// Android Plugin 
//apply plugin: 'android' 
apply plugin: 'android-library' 

// Repositories 
repositories { 
    mavenLocal() 
    mavenCentral() 
} 

// Dependencies Configuration 
dependencies { 
    compile 'org.springframework.android:spring-android-rest-template:1.0.1.RELEASE' 
    compile 'com.fasterxml.jackson.core:jackson-databind:2.4.2' 
    **compile 'com.project:myproject-client:1.0.0'** 
} 

// Android Configuration 
android { 
    buildToolsVersion '20.0.0' 
    compileSdkVersion 20 
    sourceSets { 
     main { 
      manifest { 
       srcFile 'app/src/main/AndroidManifest.xml' 
      } 
      java { 
       srcDir 'app/src/main/java' 
      } 
      res { 
       srcDir 'app/src/main/res' 
      } 
      /*assets { 
       srcDir 'assets' 
      }*/ 
      resources { 
       srcDir 'app/src/main/resources' 
      } 
     } 
    } 
    packagingOptions { 
     exclude 'META-INF/ASL2.0' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/license.txt' 
     exclude 'META-INF/NOTICE' 
     exclude 'META-INF/notice.txt' 
    } 
    lintOptions { 
     // simple xml fails lint checks because it references javax.xml.stream 
     abortOnError false 
    } 
} 

답변

0

Archiva 저장소를 선언해야합니다.

repositories { 
    mavenLocal() 
    mavenCentral() 
    maven { 
     url 'http://hostname/rep' // replace with url to your internal repo 
    } 
} 
+0

나는 프로젝트를 다시 만들 때 오류가 발생했습니다. package com.mycompany.package does not exist. 안드로이드 스튜디오를 사용하고 있습니다 –

+0

'gradlew dependencies --configuration compile'을 실행하면 종속성이 나타납니다? –

+0

예,하지만 프로젝트를 다시 빌드하고 Android 에뮬레이터에 배포 할 때 내 종속성이 apk에로드되지 않아로드되지 않습니다. –