IntelliJ 2016.2を使用します。
Gradle 2.14.1の使用
2つのプロジェクトがあり、それぞれにbuild.gradleファイルと個別のディレクトリ構造があります。
myLib (meant to be jarred and used by others)
- build.gradle
- settings.gradle
- src/main/Java/...
sandbox (spring boot web app)
- build.gradle
- settings.gradle
- src/main/Java/...
- src/main/resources/...
うまくいけば、あなたは絵を取得します。 IntelliJ内では、同じレベル(サブプロジェクトなし)に次のモジュール構造があります。
- myLib
- sandbox
簡単なリクエスト... myLib
アプリ内でsandbox
を使用したい。両方を開発するには、同じプロジェクト内の両方のモジュールが必要です。
IntelliJ内のsandbox
のmyLib
にモジュール依存関係を追加しようとしました。サイコロなし。サイコロではなく、jar参照を追加してみました。
Build.gradleファイルに依存関係を追加する必要があると思いますが、その方法がわかりません。 compile files '<path to myLib.jar>'
などを試しました。サイコロはありません。
これは、ライブラリがあるほとんどのGradleプロジェクトが従うパターンであり、そのライブラリを使用するサンプルアプリです。
- module/
- build.gradle
- src/main/Java
- library/
- build.gradle
- src/main/Java
- settings.gradle
- build.gradle
そのトップレベルsettings.gradle
には
include ':library', ':module'
そして、module/build.gradle
で、含まれているプロジェクトをコンパイルします
dependencies {
compile project(':library')
}
基本的に、最上位のbuild.gradle
は、サブプロジェクトと変数のすべての一般的な構成のラッパーです。たとえば、Maven URLのrepositories { }
セクションなどで最も一般的に使用されます。完全な詳細は Gradle-Multi-project builds にあります
上記はローカルでの作業には適していますが、追加のソースコードをダウンロードさせずに、他の多くの開発者とリポジトリを共有したいとします。次に、他のライブラリをリモートサーバーに公開します。
プロジェクトがGitHubで公開されている場合、 jitpack.io のようなサービスを使用します。また、Bintray OSSまたはMaven Centralでアカウントをセットアップして、他のほとんどのライブラリと同様にライブラリを使用できるようにすることもできます。
プロジェクトが社内でプライベートである場合、一般的なWebサーバー、Nexus、Artifactoryのいずれであっても、Mavenタイプのサーバーが必要になります。 リポジトリブロックに追加して追加します。
repositories {
maven { url "http://some.maven.site/" }
}
次に、通常どおりcompile
またはimplementation
ソースを追加します
最後に、Gradle 3.1はこの問題を解決しました。コンポジットビルドがネイティブでサポートされるようになりました。もっと こちら 。要するに、この行をsandbox settings.gradleファイルに追加します。
includeBuild '<PATH>/myLib'
Gradleをアップグレードできない場合、唯一の希望は、mylibアーティファクトをローカルのMavenリポジトリに公開し、mavenLocal()をsandbox/build.gradleに追加することです。
この答えは現代のgradleとintellijでは時代遅れです。 darwinbaisa's answer を参照してください
元の答え
基本的に、複合ビルドを使用する必要があります。 [表示]> [ツールウィンドウ]> [Gradle]> [ライブラリを使用してプロジェクトを右クリック]> [コンポジットビルド構成]> [ローカルバージョンを使用するライブラリプロジェクトを選択]。
再構築を実行してから、ローカルの依存関係を使用する必要があります