Zip/Tar配布を生成する必要がある非常に似た(Java以外の)いくつかのプロジェクトがあります。一般に、各プロジェクトは単にdistributions
セクションを持ち、さまざまなファイル/ディレクトリをコピーし、アーカイブをアセンブルします。私は別の "共通の"プロジェクトに共通のコードを抽出したいのですが、必要なフレーバーに基づいて1つのアーカイブを生成できるように、子プロジェクトからビルドを実行します。共通コードは単にアーカイブに含める必要があるディレクトリですGradleマルチプロジェクトの個別配布
おそらく、複数のディストリビューションを生成するために親からビルドを実行することはありません。
まず共通ファイルをコピーしてから、子プロジェクトからファイルを追加/上書きする必要があります。私はsamples/userguide/multiproject
の例を見て、フラットな構造を使いたいと思っています。しかし、これらの例は非常にスパルタンですので、どの例も非常に高く評価されます!
ありがとうございます!あなたのコードを調べています。あなたの例では、マスタープロジェクトが子プロジェクトを入れ子にしているようです。要件の1つは、プロジェクトがフラットな構造を使用しているため、「commonProjectもマスタープロジェクトです。これはできますか? – Bostone
_」の意味によっては、プロジェクトはフラットな構造を使用するため、 commonProjectもマスタープロジェクトです_ "必要な変更は異なる場合があります。しかし、答えはおそらくどのような場合でもはいでしょう。たとえばcommonProject内で 'settings.gradle'の' includeFlat( "projectA") 'を実行し、' commonProject'の内部から 'gradle distZip'を開始することができます。すべてのgradleファイルを 'commonProject'に移動し、' settings.gradle'の 'includeFlat'に切り替えるだけです。 プロジェクトのうち1つだけをビルドしたい場合は、例えば 'gradlew:projectA:distZip'のように実行することもできます。 – Fanick
あなたの助けをありがとう、賞金をお楽しみください! – Bostone