2016-02-23 13 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ではサポートされていません。これを行うには、独自の仕様を作成する必要があります。私は明日の例を投稿しようとします。 –

関連する問題