Gradle是Android的構建工具。前段時間我着手引領改造公司一個項目的框架,從單模塊改造到多模塊的,便於公司其它業務部門複用我們的模塊。
團隊某位MM需要爲每個模塊添加MakeJarLib(depend on build)任務,但發現編譯執行一個基礎模塊的任務時,其它模塊也總會一併build。讓她犯難了,總以爲是模塊間有依賴,花了很大的精力確認是否有依賴關係,確認下來,實在找不到有依賴關係。最後沒轍,只能帶着疑惑及不安出了一個包給業務部門暫時先試用。然後將問題反饋給了我,原來她爲每個模塊的task名都是MakeJarLib,執行一個模塊的MakeJarLib時,gradle會執行在其它模塊下的同名task。
後來我進行了這樣的改動:
1.爲每個模塊定義的不同的task名:MakeXXXXJarLib,XXXX爲模塊名;
2.在工程根目錄的build.gralde下添加了subprojects配置,一個任務構建出所有模塊的Jar包出來。