2016-12-09 22 views
2

的資產,我有以下問題,其中:
如何處理不同的產品口味

  1. 我有多個產品口味在我的Android項目。 {說,開發和生產}
  2. 我有一個CI的地方,詹金斯建立我的項目,併發布到不同的團隊。
  3. 我有一個資源文件是味道特定的,但依賴於服務器上存在的數據。例如一個公司名單的json。
  4. 這個列表在Dev和Production上有所不同。
  5. 由於這是一個巨大的JSON,我們將其包含在我們的資產文件夾中。在運行時下載此json將不允許用戶至少第一次快速使用該應用程序。
  6. 目前在Jenkins的編譯時我們wget /下載這個json並將它們寫入我們的資產文件夾。在編譯期間獲取該環境/產品風格的最新資產。
  7. 這wget是寫在我的詹金斯shell命令。一個成功的wget後,我們運行gradle assembleDev,重複步驟6,然後gradle assembleProduction

現在的問題在於事實,我不舒服有這個wget的詹金斯在2個原因。
1)特定於環境的資產/ json在開發人員機器上不可用於本地測試,因此他們需要始終注意。
2)Jenkins中的代碼顯然不存在於我的VCS/Git中。我不舒服。
可能的解決方案是什麼? PS: - 爲了說明問題,我有22種產品味道和8種這樣的味道。

回答

0

在我們的生產設置中,我們目前解析一個Google Sheets文檔以查找變量並將它們寫入到我們的strings.xml文件中。 所以有一些類似的情況。

我們在我們的Gradle構建腳本中執行此操作,該腳本調用Java類,然後執行網絡邏輯,將下載的數據返回到Gradle,該Gradle將其寫入到正確的strings.xml文件中。

這意味着我們所有的代碼都存在於我們的git存儲庫中,並且可以像這樣處理。

我覺得這很優雅。

注意:我們目前沒有區分產品口味,但是這很容易在Gradle中添加幾行。

+0

是你的java程序是你的Android項目的一部分,還是單獨運行。你能分享一些代碼嗎? – Ichthyocentaurs