androidstudio可以引入別的project的library module作為library?

compile project(":developlib") 類似這樣。但是我要引用的這個module是在別的project下面的。就是類似eclipse裡面 兩個project共用一個library,共同維護。
這樣有什麼辦法引入嗎?


安利一個網站,http://jitpack.io,用過都說好。

https://jitpack.io/


build.gradle的dependencies是可以寫相對路徑的,依賴外部module我沒有試過,但依賴外部jar包實測確實是可以的。

題主要解決的是多個project共用一個依賴包的問題,考慮到依賴包的維護以及持續集成的編譯問題,可以這樣:將公用依賴包放在伺服器上,這個庫可以共同維護,每個project構建時不相互依賴、也不會相互干擾,至於這個庫具體放在哪個地方,可以參考如下方案:

1、如果這個依賴包是github上的開源庫,可以看這個開源庫是否放在了maven倉庫上,如果放了直接依賴,如果沒有,可以藉助https://jitpack.io/打包並按照網頁上的提示依賴;

2、如果這個依賴包是你們自己開發的,不宜公開,可以將這個庫上傳到自己搭建的私有maven倉庫上,私有maven倉庫的搭建和使用可以參見:使用Nexus Repository搭建屬於自己公司的私有maven伺服器


發布到maven倉庫中,通過Gradle引用吧


  1. 把library module 拷貝到你的工程下;

  2. 在settings.gradle 中配置 include ":module路徑"

  3. 在app module 的dependency 裡面 compile project(":module路徑")

https://github.com/ShinChven/MigrateToGradle


為什麼要這麼做,這樣依賴性會不會太強了,直接拷貝這個module過來就好了,這樣也便於修改。


不想放到remote rep上的話,更簡單直接的方法是直接在AS裡面選擇new—&>import module,在文件選擇的時候直接選另一個project裡面的module即可。AS會自動把module拷貝一份到當前的project並且引入進來。


在你的工程的setting.gradle下

include "lib"

project(":lib").projectDir= new File(settingsDir, "../yourlib")

//你的庫對於setting.gradle的相對路徑

這樣直接將外部工程導入了依賴,而不會拷貝一份到自己的工程下


建議你看看我的這篇blog:[Android Studio 權威教程]AS添加第三方庫的6種方式(Jar,module,so等)


可以。例如在別的地方有一個 commonProject,裡面有 commonModule,你想要引用,而不是複製到現有項目,那麼

1.現有項目的settings.gradle下

include ":commonModule"
project(":commonModule").projectDir = new File(settingsDir, "../commonProject/commonModule")

2.現有項目moudle的build.gradle下

compile project(":commonModule")


project -&> settings.gradle

include ":Common"
project(":Common").projectDir = new File("../Common/")
include ":Common:common"

app -&> build.gradle

compile project(path: ":Common:common")


這個可以使用git+Gradle+Mave解決,比如放再私服上面,使用Nexus構建存放自己的私有依賴庫,然後上面的庫都可以作為依賴被引入到別的項目中,這樣子就很方便管理一些公共依賴或者是自家的SDK之類的。引入的方式跟從從maven倉庫或者是jcenter引入到項目方式一樣,compile進來,而且很方便的發布一些快照版本和正式版本。


公共庫的話可以新拉一個git倉庫,專門放公共組件,然後以submodule的方式進行管理就方便了


最好的做法是把lib單獨建立project,並且單獨版本管理


導入的時候可以選擇 注意一下


可以啊,我就經常這麼做,不過要注意的是在settings.gradle選中添加上這個module就好了


沒那麼麻煩,多加幾個冒號的問題。

xxx:yyy:lib


推薦閱讀:

如何看待泰爾實驗室嘗試建立安卓統一推送標準UPS?
Kindle 看書時可以用詞典取詞的嗎?
如何看待 @李楠 近期發表的系列關於 Back 鍵的言論?
小米note開發版MIUI,安卓6.0!怎麼安裝Xposed 框架?
電話本中的「個人收藏」有沒有用處?

TAG:Android開發 | Android | AndroidStudio |