2016-08-17 6 views
0

私は次のような構造を持つプロジェクトを設定したいと思います:Gradle:別のプロジェクトのモジュールに依存することはできますか?

Project 1 
    + build.gradle 
    + settings.gradle 
    + module A 
     + build.gradle 
     + src 
     + ... 
    + module B 
     + build.gradle 
     + src 
     + ... 
Project 2 
    + build.gradle 
    + settings.gradle 
    + module C 
     + build.gradle 
     + src 
     + ... 
    + module D 
     + build.gradle 
     + src 
     + ... 

私は、これはソース(ないのMavenアーティファクト)になりたいプロジェクト1のモジュールAは、Project 2のモジュールD.に依存したいと思いますGrade 2.14とAndroid Studio 2.1を使って作業する必要があります。

私はProject 2またはそのルートbuild.gradleのレイアウトを制御しません。私ができることは、それを自分のワークスペースにプルして使用することだけです。

私はプロジェクト1を完全に制御しており、私が望むように設定することができます。私は、プロジェクト1の完全なビルドがプロジェクト2の完全なビルドを引き起こさないことを望んでいます。ちょうど:project2:moduleDです。しかし、動作するものは何でもします。

私は推測を取って、私はプロジェクトの1のためのbuild.gradleファイルを設定する方法を知りたいのですが、そして、何がモジュールA.

答えて

1

ためbuild.gradleにdependency句に入れてあなたが説明したものは、複数のプロジェクトが設定されているわけではありません。つまり、2つの独立したプロジェクトです。プロジェクトの出力jarファイルにリンクするのが最善の方法です。

compile files('path/to/Project2/build/output.jar')

これは、最新のソースがシステム上に引っ張られた後、プロジェクト2上で実行されるようにビルドを必要とします。あなたがプロジェクトの特定の場所を持っていれば、これをもう少し自動化することができますが、それはすべてかなり壊れやすいものです。

+0

これは単純な "マルチプロジェクト"ビルドではなく、gradleの混乱する専門用語で正しいといえます。代わりに、実際には、複数のプロジェクトを記述しています。 –

+0

gitを使用している場合は、それをプロジェクトのサブモジュールとして追加し、プロジェクトをマルチプロジェクトに設定することができます – Pieces

+0

これはうまくいく可能性があります!それぞれのビルドファイルをどのように設定しますか?プロジェクト2にあるものは、それがルートだと思っています。プロジェクト1にsettings.gradleがあります。 –

0

あなたはシンボリックリンクを試しましたか?プロジェクト1のシンボリックリンクを作成してDのフォルダをプロジェクト1の設定に追加します.gradele

+0

はい。 SymlinkとGit Submoduleを試しました。 Gradleが単一のルートディレクトリを必要とするように見えるという本質的な問題が残っています。 –

関連する問題