私はgradleを使ってさまざまな顧客のためのJavaライブラリを構築したいと思います。 「純粋な」グラデルにアンドロイドから知られているような製品フレーバーがありますか?「純粋な」グラデル(グラデルではない)の製品のフレーバー
ありがとうございました。
私はgradleを使ってさまざまな顧客のためのJavaライブラリを構築したいと思います。 「純粋な」グラデルにアンドロイドから知られているような製品フレーバーがありますか?「純粋な」グラデル(グラデルではない)の製品のフレーバー
ありがとうございました。
答えははいですが、非常に孵化している新しい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ではサポートされていません。これを行うには、独自の仕様を作成する必要があります。私は明日の例を投稿しようとします。 –