2016-02-23 79 views

回答

1

答案是肯定的,但您必須使用新孵化的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目前不支持。我將嘗試用一個如何執行自定義規範的示例發佈更完整的答案。

+0

我找不到任何引用鏈接文檔中的口味.. – RaGe

+0

@RaGe我更新了參考。我需要做一些雙重檢查,以確保它按照指出的那樣工作。我僅在c/cpp中使用軟件模型,而不是在我們的Android/Java項目中使用。讓我做一些測試,然後我會回報。 –

+0

@RaGe它是可行的,但目前不支持JvmLibrarySpec。要做到這一點,你必須創建你自己的規範。我會在明天發佈一個例子。 –

相關問題