IntelliJプロジェクトにGradleサポートを追加する最良の方法


168

私はかなり調べましたが、既存のIntelliJプロジェクトをGradleに変換するための最良の解決策を見つけられませんでした。私はチーム環境で作業しており、追跡しているビルド構成がいくつかあるため、現在.iprファイルを共有しています。最終的にはGradleの方を優先してそれらを取り除く予定ですが、Gradleの変換が完了するまでは、あまりに多くのことを行うことができません。

また、Javaソースファイルは、標準のsrc / main / javaではなく、srcディレクトリのルートにあります。

Gradleをプロジェクトに追加して、IntelliJプロジェクトを削除および再作成せず、Gitプルを実行するときに他の全員を台無しにしない方法はありますか?


2
ソースディレクトリの質問に答えるには、デフォルトのソースディレクトリをsourceSetsでオーバーライドする必要があります。我々はMongoDBのJavaドライバでこれをやった方法を参照してください:github.com/mongodb/mongo-java-driver/blob/...
トリシャ・

回答:


208

追加:

build.gradle 

ルートプロジェクトフォルダーで、たとえばプラグインを使用します。

apply plugin: 'idea'
//and standard one
apply plugin: 'java'

そしてコマンドラインからのこの火で:

gradle cleanIdea 

それとその後:

gradle idea

その後、すべてがうまくいくはずです


7
?このソリューションをしようとすると、誰もがそうそれはどのように解決された場合はモジュールのX-X 『』はGradleのに裏付けされていません」というエラーに遭遇しなかった
マルキブラント

おかげで私は夢中になりました。build.gradleに追加した後、IntelliJにプロジェクトの依存関係を更新させる方法を理解できませんでした。
アマラ2016

gradle idea(ideaProject、ideaModule、ideaWorkWorkspaceに依存します)は、ideaModuleが失敗し続けるので機能しませんでした。代わりに、タスクgradle ideaProjectは正常に機能し、プロジェクトはGradle対応になります。
パランザ2016年

このアプローチには問題があります。「依存関係をgroovy.lang.closureに適用できない」エラーが発生します。代わりにこのソリューションを確認してください:stackoverflow.com/a/17168175/2517730
Yar

1
Gradleプラグインのアイデアはファイルベースのアイデアプロジェクトに依拠しているため、これはやや古く、フォルダベースのプロジェクトは標準的ではるかに便利です
Xerus

74

.imlファイルを削除する必要はありません。これに従ってください:

  • プロジェクトを閉じる
  • File -> Open... 新しく作成した build.gradle
  • IntelliJは、次のことを希望するかどうかを尋ねてきます。
    • Open Existing Project
    • Delete Existing Project and Import
  • 2番目のオプションを選択すれば完了です

新しいプロジェクトは別のフォルダーにある必要があるという問題を修正するにはどうすればよいですか?
barracuda317 2017年

これにより、プロジェクト構造からJARが追加されますか?依存関係としてのライブラリと、プロジェクト構造で定義されたEARの作成(プラグインを使用)| アーティファクト?
NOTiFY 2018

@NOTiFY私はそれを疑います。これは、プロジェクトを最初からチェックアウトすることと同じです。
Michal Kordas

@Michal Kordasすべての依存関係を手動で追加しましたが、予想した時間の近くには時間がかかりませんでした。WAR、JAR、EARの作成を追加しました。JetBrains youtrack.jetbrains.com/issue/IDEABKL-6990に
NOTiFY

46

別の方法、より簡単です。

あなたの

build.gradle

ファイルをプロジェクトのルートに追加します。プロジェクトを閉じます。* .imlファイルを手動で削除します。次に、[プロジェクトのインポート... ]を選択し、プロジェクトディレクトリに移動して、build.gradleファイルを選択し、[OK]をクリックします。


21

IntelliJ 2017.2.4では、プロジェクトを閉じて再び開くと、Gradleプロジェクトのインポートダイアログを開くbuild.gradleとリンクするかどうかを尋ねるダイアログが表示されました。

ファイルを削除したり、アイデアプラグインをbuild.gradleに追加したりする必要はありません。


2
これがうまく機能することを確認できます。プロジェクトルートでgradle initを実行するだけで、次にプロジェクトを開いたときにダイアログが表示されます。
Alex H.

16

ちょうど将来の参照として、すでにMavenプロジェクトがある場合gradle initは、プロジェクトディレクトリでを実行するだけでbuild.gradle、他の依存関係が生成さgradle buildれ、同じディレクトリでが実行されます。


2
興味深い:新しいGradleビルドの作成 -注:gradle initさまざまな種類のプロジェクトを生成でき、単純なpom.xmlファイルをGradle に変換する方法も知っています。
Guy Coder

7

IntelliJのバージョン12を使用しています。

まったく新しいプロジェクトを作成することで同様の問題を解決し、「バージョン管理からチェックアウトする」2つのプロジェクトを後でマージするのはかなり簡単でした。


1
  1. build.gradleプロジェクトのルートディレクトリに追加します。

  2. それからちょうどFile->Invalidate Caches / Restart

Javaプロジェクトの基本的なbuild.gradleは次のとおりです。

plugins {
    id 'java'
}

sourceCompatibility = '1.8'
targetCompatibility = '1.8'
version = '1.2.1'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.