5
我想用gradle爲不同的客戶構建一個java庫。 有沒有像從「純」gradle Android中知道的產品口味?「純」gradle(不是android gradle)中的Gradle產品風味
謝謝。
我想用gradle爲不同的客戶構建一個java庫。 有沒有像從「純」gradle Android中知道的產品口味?「純」gradle(不是android gradle)中的Gradle產品風味
謝謝。
答案是肯定的,但您必須使用新孵化的Gradle軟件模型。這將是一條充滿痛苦的道路,因爲我會學習將它用於C/Cpp項目。這通常是你的構建看起來的樣子。
plugins {
id 'jvm-component'
id 'java-lang'
}
model {
buildTypes {
debug
release
}
flavors {
free
paid
}
components {
server(JvmLibrarySpec) {
sources {
java {
if (flavor == flavors.paid) {
// do something to your sources
}
if (builtType == buildTypes.debug) {
// do something for debuging
}
dependencies {
library 'core'
}
}
}
}
core(JvmLibrarySpec) {
dependencies {
library 'commons'
}
}
commons(JvmLibrarySpec) {
api {
dependencies {
library 'collections'
}
}
}
collections(JvmLibrarySpec)
}
}
參考文獻: 1)Java軟件模式https://docs.gradle.org/current/userguide/java_software.html 2)香精https://docs.gradle.org/current/userguide/native_software.html 注:我不知道味道如何很好地支持了Java軟件模型,我會做一些測試和彙報。
更新:它是可行的,但JvmLibrarySpec目前不支持。我將嘗試用一個如何執行自定義規範的示例發佈更完整的答案。
我找不到任何引用鏈接文檔中的口味.. – RaGe
@RaGe我更新了參考。我需要做一些雙重檢查,以確保它按照指出的那樣工作。我僅在c/cpp中使用軟件模型,而不是在我們的Android/Java項目中使用。讓我做一些測試,然後我會回報。 –
@RaGe它是可行的,但目前不支持JvmLibrarySpec。要做到這一點,你必須創建你自己的規範。我會在明天發佈一個例子。 –