2014-09-05 75 views
0

我很新的工作與Android和依賴管理與Gradle。我是Java開發人員,通常我使用Maven來管理依賴關係。依賴管理與Android上的Gradle

調查我發現Gradle現在是Android上的依賴管理。我通常在服務器端使用圖層。我做了一個客戶端項目來與客戶端進行通信,以防萬一是Android應用程序。我必須在Android項目中添加我的客戶端jar作爲依賴項。

其實我有我的本地存儲庫與Archiva。在pom.xml中,我通常在存儲庫標籤中聲明瞭本地存儲庫,對此,我可以將我的項目作爲依賴項包含在內。

是否可以用Gradle做到這一點?

我這樣做了,但是當我在android模擬器中運行項目時,項目失敗了。

//頂級構建文件,您可以在其中添加對所有子項目/模塊通用的配置選項。

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

我試過,但是當我重建項目我有錯誤:包com.mycompany.package不存在。我正在使用Android Studio – 2014-09-05 15:29:04

+0

如果您運行'gradlew dependencies --configuration compile',那麼您的依賴項列在那裏? – 2014-09-05 15:32:05

+0

是的,但是當我重建項目並部署到Android模擬器時,它不會加載,因爲我的依賴項沒有加載到apk中。 – 2014-09-05 15:50:05