2016-11-08 22 views
2

我是Android Studio的新手。Android Studio:「依賴關係」如何工作?如何更新圖書館?

我把這個庫https://github.com/2dxgujun/AndroidTagGroup整合到我的項目中。

所有的東西,我不得不到是按照他們的指示,從而添加以下行的「應用程序gradle這個文件」(在「依賴」):

compile 'me.gujun.android.taggroup:library:[email protected]' 

然後點擊「同步」在應用gradle文件的Android Studio窗口的右上角。它正常工作;太好了!

不過,我真的不明白下面的事情:

1)什麼是 「圖書館:[email protected]」 是什麼意思?它是單個庫文件嗎?它位於文件夾中的位置在哪裏?

2)Android Studio如何知道這個庫位於我的磁盤上?我複製/粘貼了我的磁盤上所有Android項目的文件夾的根目錄下的庫文件夾;它是Android Studio去查找庫的默認位置?

3)如果我想修改這個庫中的某些東西並重新編譯它,我應該怎麼做?例如,我將13sp(在styles.xml中)修改爲30sp,使用「./gradlew assembleDebug」(如GitHub中提到的)重新編譯庫,但即使在清理/構建之後,它對我的​​項目也沒有影響...爲什麼?順便說一句「./gradlew assembleDebug」是什麼意思?

感謝您的幫助!

+0

如果你真的想知道它是如何工作的閱讀gradle文檔:https://docs.gradle.org/current/userguide/artifact_dependencies_tutorial.html – Henry

回答

3

「library:[email protected]」是什麼意思?它是單個庫文件嗎?

拉從JCenterAAR fileMaven

在Maven項目的情況下,這種關係在一個pom.xml格式表示,像這樣

<groupId>me.gujun.android.taggroup</groupId> 
<artifactId>library</artifactId> 
<version>1.4</version> 

正如你看到的,你有工件ID爲​​「庫」和「1.4」只是一個版本名稱。

Android Studio如何知道此庫位於我的磁盤上?

build.gradle文件中,您將有一個這樣的部分。

// Top-level build file where you can add configuration options common to all sub-projects/modules. 

allprojects { 
    repositories { 
     jcenter() 
     // mavenCentral() 
     // mavenLocal() // Some variant of these. 'jcenter' is the default 
    } 

取決於您的操作系統,但在你的主文件夾.gradle目錄或.m2目錄下所有搖籃& Maven依賴被下載。

例如,GSON,對我來說是

~/.m2/repository/com/google/code/gson/gson/2.6.2/gson-2.6.2.jar 

,如果我想修改的東西在這個庫,並重新編譯呢?

可能過於廣泛,這個職位,但您將不再使用

compile 'me.gujun.android.taggroup:library:[email protected]' 

因爲這將始終使用Github的來源,而不是你的變化。您需要克隆回購並使用Gradle的compile project功能。

「./gradlew assembleDebug」是什麼意思?

使用Gradle包裝器爲debug構建類型的項目運行assemble task

+0

不能說更好的我自己:) – anthonymonori

+0

由於OP是新的到Android,我假設他正在使用一個標準項目。在這種情況下,圖書館將從jcenter獲取,而不是maven。 – F43nd1r

+0

@ F43nd1r正確,但Github項目使用這些構建標記鏈接到Maven Central –

相關問題