Lightbuild 專案會將應用程式組件與應用程式程式碼分開:應用程式模組 (或「應用程式命令介面」) 會組合應用程式,而程式庫模組則包含應用程式的功能、UI 和商業邏輯。本頁面說明新 Lightbuild 專案的版面配置,以及各模組和建構檔案的角色。
專案版面配置
預設 Lightbuild 專案範本包含下列建構檔案和模組:
MyApp/
├── project.lightbuild.yaml # Project-wide settings
├── app/ # App module
│ ├── lightbuild.yaml
│ └── resolved.deps
└── app-core/ # Library module
├── lightbuild.yaml
├── resolved.deps
└── src/ # The app's source code
專案有三個建構設定檔:根目錄中的 project.lightbuild.yaml 檔案,以及每個模組中的 lightbuild.yaml 檔案。每個模組也都有 resolved.deps 檔案。如要進一步瞭解各設定檔中的設定,請參閱 Lightbuild 設定參考資料。
應用程式模組
Lightbuild 專案會使用應用程式模組做為應用程式的基礎。這也稱為「應用程式命令介面」,因為它會處理專案組裝,不含任何原始碼。所有功能和邏輯都會保留在獨立的程式庫模組中,而應用程式命令介面則著重於最終設定,例如簽署和最佳化。
應用程式模組的 lightbuild.yaml 檔案會將模組的 type 設為 application,並指定最終應用程式的組合方式,包括:
- 應用程式的身分:應用程式 ID、版本代碼和版本名稱
- 應用程式的 SDK 規定:
compileSdk、minSdk和targetSdk版本 - 應用程式依附的模組,在本例中為
app-core
程式庫模組
程式庫模組包含應用程式模組組合的程式碼,例如應用程式的功能、UI 元件和商業邏輯。在新專案範本中,app-core 程式庫模組包含含有程式碼範例的 MainActivity.kt 檔案。
程式庫模組的 lightbuild.yaml 檔案會將模組的 type 值設為 library。程式庫模組會定義 compileSdk 和 minSdk 版本,但不支援 targetSdk 設定。程式庫模組的 lightbuild.yaml 檔案也會宣告模組的依附元件、KSP 處理器和測試。
多個應用程式模組
一個專案可以有多個應用程式模組。Lightbuild 不支援傳統意義上的產品變種版本和自訂建構類型。而是為每個應用程式版本建立獨立的應用程式模組,例如 dev 和 prod 版本,或 free 和 paid 版本。
每個應用程式模組都依附於其版本所需的程式庫模組。應用程式模組可以共用程式庫模組、依附不同程式庫模組來取得特定版本的程式碼和設定 (例如獨立的依附元件插入 (DI) 模組),並省略版本不包含的功能程式庫模組。
舉例來說,如果專案包含免費版和付費版應用程式,可能會有下列模組:
MyApp/
├── project.lightbuild.yaml
├── app-free/ # App module for the free version
├── app-paid/ # App module for the paid version
├── core/ # Library module that both versions use
├── di-free/ # DI module for the free version
├── di-paid/ # DI module for the paid version
└── premium/ # Library module for paid-only features
付費版本的 app-paid/lightbuild.yaml 檔案依附於所有付費版本的模組:
android:
applicationId: com.example.myapp.paid
dependencies:
module:
- //core
- //di-paid
- //premium
免費版本的 app-free/lightbuild.yaml 檔案依附於共用的 core 模組和其本身的 DI 模組,並省略 premium 模組:
android:
applicationId: com.example.myapp.free
dependencies:
module:
- //core
- //di-free
每個應用程式模組都有專屬設定,例如應用程式 ID 和版本簽署,因此您可以分別建構、安裝及發布各個版本。如要建構特定版本,請在執行 build 指令時指定應用程式模組。例如:
lightbuild build app-free
已解析的依附元件
Lightbuild 專案中的每個模組都包含 resolved.deps 檔案,其中記錄模組所有已解析的依附元件,包括遞移依附元件。Lightbuild 會自動產生這個檔案,因此每次開啟或建構專案時,都不需要動態解析依附元件。請勿手動編輯這個檔案。
將 resolved.deps 檔案和專案的 lightbuild.yaml 檔案一併簽入版本管控。
如要鎖定依附元件 (例如在 CI 建構作業中),請將 --locked-dependencies 旗標新增至 lightbuild resolve 或 lightbuild test。使用這個旗標時,如果 resolved.deps 檔案與模組的依附元件不符,指令會失敗,而不會更新檔案:
lightbuild resolve --locked-dependencies
為您推薦
- 注意:系統會在 JavaScript 關閉時顯示連結文字
- Lightbuild 設定參考資料
- 透過指令列建構 Lightbuild 專案
- 比較 Lightbuild 與 Kotlin DSL