我正在開發通過Gradle(在持續集成服務器上)構建的(Groovy)應用程序。該應用程序應該被編譯爲兩個版本:一個開發版本(包括一些我只想爲自己啓用的功能)和一個公共版本(不包括或僅僅禁用這些「開發功能」)。在構建過程中在源代碼中設置「硬編碼」標誌
對此的一種解決方案是直接在應用程序的主類中使用全局標誌,例如static final boolean PUBLIC_RELEASE
。然後在我的代碼中,我可以檢查該標誌並啓用或禁用某個功能。
現在在我的Gradle構建腳本中,我可以檢查環境變量(由Continuous Integration服務器設置)。如果設置了該變量,那麼在編譯源代碼之前,我可以將該標誌的當前值設置(即更改)爲true
或false
。
我相信這種方法可行。但是,在構建過程中自己修改源代碼並不合適。另一方面,我認爲這對許多軟件項目來說都是標準任務。
有沒有處理這個要求的「最佳實踐」?
那麼,我不希望用戶能夠啓用這些隱藏功能。所以看起來選項1和3不是我的要求的解決方案。 – Matthias 2015-03-03 10:32:21
這就是我的想法。所以看來你可以使用的是源代碼過濾。 – Opal 2015-03-03 10:52:52
@Matthias,如果問題得到解答,請接受答案。 – Opal 2015-03-04 05:48:08