基於同份程式碼不同產品線的解決辦法
文章背景
公司的其中一條產品線其實比較奇怪,給乙方的產品其實都是基於同一個專案,但是彼此之間又或多或少有些區別,例如:包名、圖示、歡迎介面以及一部分使用場景的定製需求。
之前的解決方法:
在一個已經完工的工程下將原來做好的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 各歸各的專案管理
- 主專案是完整的 分專案是隻有程式碼的版本
相關文章
- Hybris Commerce下單時遇到產品庫存不足的解決辦法
- 錯誤720寬頻連線解決辦法 寬頻連線錯誤程式碼720怎麼解決
- autodesk產品無法安裝解決方案
- SSH 連線卡頓解決辦法
- php json提交亂碼的解決辦法PHPJSON
- 關於網站出現Errorestablishingadatabaseconnection的解決辦法網站ErrorRESTDatabase
- 網站被入侵 篡改程式碼劫持快照的解決辦法網站
- 關於MacBook Pro 15 usb連線iPhone反覆重連的解決辦法MaciPhone
- LoadRunner中文出現亂碼的解決辦法
- 寶塔Linux皮膚FTP無法連線的解決辦法LinuxFTP
- Windows無法配置此無線連線這個問題的解決辦法Windows
- 關於網路重置後無法聯網的解決辦法
- Windows和Linux環境下忘記MySQL連線密碼的解決辦法WindowsLinuxMySql密碼
- 公寓噪音的解決辦法
- Xshell連線Linux慢問題解決辦法Linux
- Mysql出現連線錯誤解決辦法MySql
- ubuntu中文顯示亂碼解決辦法Ubuntu
- Adobe 2022軟體安裝錯誤程式碼107解決辦法
- 關於npm install安裝報錯的解決辦法NPM
- vnc連線黑屏,3步解析vnc連線黑屏的解決辦法VNC
- 湘龍科技微應用解決方案產品線
- 一張工資條引發的關於國內OA協同辦公產品的思考
- 連線sql server時,不能使用127.0.0.1的解決辦法SQLServer127.0.0.1
- ubuntu沒有有線網路的一種解決辦法Ubuntu
- Redis中文顯示為Unicode編碼 亂碼的解決辦法RedisUnicode
- php onethink驗證碼不顯示的解決辦法PHP
- 關於從其他程式切回word文件時卡頓問題的解決辦法
- 關於使用Pycharm新建flask專案 from flask 紅色波浪線解決辦法PyCharmFlask
- 關於$ is not defined的原因和解決辦法
- 關於SLG遊戲狼與羊群矛盾的解決辦法遊戲
- github慢解決辦法Github
- Namespoace Terminating 解決辦法
- 新手程式設計師?教你解決辦法!基礎都掌握了,動手敲程式碼就一臉懵逼程式設計師
- 復工復產下辦公,哪些遠端協同辦公產品免費助攻
- 關於軟體的程式碼混淆的產品對比與分析
- Mysql實現全外部連線(mysql無法使用full join的解決辦法)MySql
- Windows連線遠端桌面時出現黑屏的解決辦法Windows
- 遠端連線關閉,專案就停止的解決辦法
- MYSQL++ 資料庫連線超時的解決辦法LTMySql資料庫