2021 年、idea+Gradle を上手に使うには?
Gradle + idea 初期化構成
idea の 2021+ バージョンでは、Setting...
2019 以前のバージョンのプロジェクトと比較して Gradle 設定に大きな変更が加えられています。この記事では、idea の新しいバージョンで Gradle ウェアハウスの場所を正しく構成し、Maven ローカル ウェアハウスの使用を優先する方法を紹介します。データの冗長性を避けるため。(OCDエクスタシー)
本篇文章使用的环境:
操作系统:Windows 10 专业版 21H1
IntelliJ IDEA版本: 2021.1.3 (Ultimate Edition)
JDK版本: 11.0.11+9-b1341.60 amd64
(无需下载Gradle,idea自带Gradle插件,构建时默认使用最新稳定版)
以前のバージョンと比較すると、最初の違いはインターフェイスです。
はい、そのとおりです。1General settings
つだけですGradle user home
。他の情報を確認した場合は、環境変数の設定を考える必要がありますGRADLE_USER_HOME
。それで、それらの間にはどのような関係があるのでしょうか?
gradle user home
実際、アイデア プロジェクトは、中央ウェアハウス、Gradle 環境、および他の構成ファイルのディレクトリから jar パッケージをダウンロードします。このディレクトリはデフォルトで同期されているため、変更する必要はありません。追加するだけで済みGRADLE_USER_HOME
ますgradle user home
。環境変数に追加するGRADLE_USER_HOME
と、自動的に変更されますgradle user home
。
ヒント:
gradle user home
のデフォルトのパスC:\Users\用户名\.Gradle
。ヒント 2: 多くのチュートリアルでは、
gradle user home
公式 Web サイトからダウンロードした Gradle プログラムのディレクトリに変更できると記載されていますが、実際にはそうするのは良くありません。このアイデアでは、gradle user home
まず実行可能な gradle.bat プログラムを探します。セットアップした Gradle は、プロジェクトのデフォルトの Gradle プログラム バージョンとは異なる可能性があり、プロジェクトで Gradle 例外が発生します。Gradle バージョンのプロジェクトでエラーを発生させずに独自の Gradle プログラムを使用する方法については、後の詳細な説明を参照してください。
1.追加GRADLE_USER_HOME
要約すると、最初のステップはオペレーティング システムを追加することですGRADLE_USER_HOME
(Linux システムは Baidu でお願いします。この記事は繰り返しません)。
1.「設定」を開き、「システム」を選択します。
2.一番下までプルダウンして、詳細なシステム設定を選択します
3. 「環境変数」→「新規」→右下の変数名を選択しますGRADLE_USER_HOME
。値は保存したいディレクトリのパスです。
これにより、ダウンロード ディレクトリが構成されます。アイデアを開き、新しいプロジェクトを作成してテストします。
D:\Maven\Gradle
空の Gradle プロジェクトを作成すると、先ほど設定したディレクトリに多くのフォルダーが自動的に生成されることがわかります。簡単に説明します。
.\caches\modules-2\files-2.1 中存放了我们从中央仓库所下载的jar包
.\wrapper\dists 中存放的是Gradle 程序(这也是我说不需要自己下的原因,idea会主动帮我们下好)
場所を変更して新しいプロジェクトを作成した後、パッケージのダウンロードが非常に遅い理由がわかったかもしれません。リモート ウェアハウスを構成したいのです。ただし、各プロジェクトの build.gradle を変更するのは遅すぎるため、 maven とsettings.xml
同等のものを使用しましょうinit.gradle
。
init.gradle はグローバル ウェアハウスを構成します
init.gradle
これは maven のものと同等であるsettings.xml
ため、ロード順序もあります。
~/.gradle/init.gradle文件
~/.gradle/init.d/目录下的以.gradle结尾的文件
GRADLE_HOME/init.d/目录下的以.gradle结尾的文件
GRADLE_USER_HOME/init.gradle文件
GRADLE_USER_HOME/init.d目录下的以.gradle结尾的文件
ここ
GRADLE_HOME
で と はGRADLE_USER_HOME
システム環境変数であり、GRADLE_HOME
Gradle がインストールされる場所です。
~
同等C:\Users\Holme\用户名
、つまり上記の内容は Linux/Windows に共通です。
すでに設定済みなのでGRADLE_USER_HOME
、D:\Maven\Gradle
ディレクトリに新しいファイルを作成しますinit.gradle
。
allprojects {
repositories {
maven {
url 'https://maven.aliyun.com/repository/gradle-plugin' }
maven {
url 'https://maven.aliyun.com/repository/google' }
maven {
url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven {
url 'https://maven.aliyun.com/repository/jcenter' }
mavenCentral()
}
}
mavenCentral()
このコードは、aliyun のいくつかの Maven ウェアハウスを優先ダウンロード アドレスとして使用することを示しています。これら 4 つのアドレスのいずれも見つからない場合は、 Maven 中央ウェアハウスから jar パッケージを見つけるためにメソッドが呼び出されます。(つまり、Gradle がリポジトリを検索する順序は上から下です)
ローカルの Maven リポジトリを優先リポジトリとして使用します
基本的に誰もが Gradle を学習するときに Maven を学習しているため、ローカルに独自の Maven ウェアハウスが存在する必要があります。(まだ学習していない場合は、私の記事を読んで idea+maven をエレガントに使用する方法を学ぶことができます)
上記のコードに 1 行を追加するだけですmavenLocal()
。
repositories {
mavenLocal()
}
しかし、Gradle が私たちのローカル倉庫の場所を知っているかどうかはわかりません。!(少し複雑です) 心配しないで、Gradle がローカル ウェアハウスの場所を見つけるプロセスを見てみましょう。
~/.m2/settings.xml
M2_HOME/conf/settings.xml
~/.m2/repository
これは
M2_HOME
システム環境変数であり、Maven のインストール ディレクトリです。
これを見て、突然気づきましたか? settings.xml ファイルを変更するか、デフォルト設定を直接使用するだけで済みます。ここでは、settings.xml ファイルの構成方法について簡単に説明します。
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>D:\Maven\repository</localRepository>
</settings>
前述の一連の制約は重要ではありません。重要なのは<localRepository>D:\Maven\repository</localRepository>
このラベルです。ラベルの内容を Maven リポジトリのアドレスに置き換えるだけです。
ここまでで、idea+Gradle の基本的な構成が完了しました。
プロジェクト内の Gradle プログラムの場所を指定するにはどうすればよいですか?
プロジェクトを開いて設定を開き、Gradle 設定を入力しましょう。
インターフェイスが以前と同じではないことがわかりました。赤で囲まれた設定により、User Gradle from
独自の Gradle プログラム ディレクトリを構成できるようになります。
を選択しSpecified location
、右側で Gradle ディレクトリ パスを選択すると、独自の Gradle プログラムを選択できます。変更されていない限り Gradle User home
、ダウンロードされたディレクトリは環境変数で設定した場所のままであるため、Gradle バージョンの競合は発生しません。