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引用吧
- 把library module 拷貝到你的工程下;
- 在settings.gradle 中配置 include ":module路徑"
- 在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 |