基於同份程式碼不同產品線的解決辦法
文章背景
公司的其中一條產品線其實比較奇怪,給乙方的產品其實都是基於同一個專案,但是彼此之間又或多或少有些區別,例如:包名、圖示、歡迎介面以及一部分使用場景的定製需求。
之前的解決方法:
在一個已經完工的工程下將原來做好的app
模組複製成一個新的module,再進行區別程式碼、檔案的修改。
優點
可以共用其他module,程式碼在同一個工程下不需要切換。
缺點
特別明顯,由於是程式碼的複製貼上,若是app
部分的程式碼出了問題,有幾個專案就要手動更新幾次程式碼。
現在的解決方式:
在公司從svn升級到git形式的程式碼管理之後,新的寫法在我的腦中冒出來了——
使用git的分支管理進行不同產品線的程式碼管理。
基礎分支為master
和develop
,develop
則是開發分支,還有可能產生dev-
開頭的分支,比如為了加入路由而產生的dev-router
,為了加入定位功能而產生的dev-location
。它們開發完了之後將合併入develop
分支,就可以功成身退了。為了確保具體專案分支從develop分支中以merge的方式獲取公共程式碼更改,還有一些需要注意的點:
- 打包一個專案一般需要修改的地方有:
- data/proxy/UrlCollection.java 中的 BaseUrls
- global/AppConfig.java 中的 API_UNION_ID
- res/layout/fragment_main_page.xml 中模組的顯示隱藏
- mipmap-xhdpi/ic_app.png 應用圖示更改
- mipmap-xhdpi/login_hospital_logo.png 登入介面圖示更改
- mipmap-xhdpi/welcome_image.png 歡迎介面更改
- 從develop引申出的具體專案命名規則遵照
省份_專案_建立日期
的規則進行分支建立 - 包名不得在分支上更改,而是在打包時更改,讓分支保持從develop中merge的能力
- master分支作milestone的用途
- 為了避免merge conflict ,對develop分支中的UrlCollection/AppConfig/fragment_main_page的修改要特別慎重
- 建立一個新專案一般需要修改的地方有:
- AndroidManifest中的包名 + app/build.gradle 中的applicationId
- AppContext中的isDebug設為false
新的想法
為了滿足元件化的願景,有了以下想法:
- 多module 各歸各的專案管理
- 主專案是完整的 分專案是隻有程式碼的版本
相關文章
- Windows 惡意程式碼解決辦法(轉)Windows
- windows無法配置此無線連線的解決辦法Windows
- Hybris Commerce下單時遇到產品庫存不足的解決辦法
- SSH 連線卡頓解決辦法
- autodesk產品無法安裝解決方案
- 基於安全可控軟硬體產品雲端計算解決方案
- 無線網路經常掉線的解決辦法
- 連線oracle錯誤解決辦法Oracle
- 找不到寬頻連線的解決辦法
- 錯誤720寬頻連線解決辦法 寬頻連線錯誤程式碼720怎麼解決
- [Robotium]關於robotium在不同解析度下clickonview不支援得解決辦法View
- 關於MacBook Pro 15 usb連線iPhone反覆重連的解決辦法MaciPhone
- MySQL sleep連線過多 解決辦法MySql
- Windows 7下載掉線解決辦法Windows
- VPN連線800錯誤的解決辦法(轉)
- 關於 resgen.exe已退出 程式碼為 2 的錯誤問題的解決辦法。
- 湘龍科技微應用解決方案產品線
- 網站被入侵 篡改程式碼劫持快照的解決辦法網站
- 解決辦法:由於oracle版本不同導致匯入資料時失敗Oracle
- 網路印表機無法連線的原因與解決辦法
- Xamarin中VS無法連線Mac系統的解決辦法Mac
- Windows無法配置此無線連線這個問題的解決辦法Windows
- 無線網路連線不上的原因與解決辦法
- 復工復產下辦公,哪些遠端協同辦公產品免費助攻
- Springmvc中文亂碼解決辦法SpringMVC
- centos 中文亂碼解決辦法2CentOS
- 一張工資條引發的關於國內OA協同辦公產品的思考
- php json提交亂碼的解決辦法PHPJSON
- mysql丟失root密碼的解決辦法MySql密碼
- 關於ssh登陸很慢的解決辦法【轉】
- 鎖的種類,阻塞,死鎖產生與解決辦法。
- 關於網路重置後無法聯網的解決辦法
- 關於dbconsole無法啟動的解決辦法
- 寶塔Linux皮膚FTP無法連線的解決辦法LinuxFTP
- windows7無法使用無線路由器的解決辦法Windows路由器
- vnc連線黑屏,3步解析vnc連線黑屏的解決辦法VNC
- nvidia安裝程式無法繼續的解決辦法
- OpenStack 的NAT解決辦法