IntelliJ IDEAのパッケージ検索プラグインとパッケージ検索サイト

# 概要

IntelliJ IDEAにはパッケージ検索 (`Package Search`) という依存ライブラリを検索してプロジェクトへ追加するプラグインがあります。
Mavenプロジェクトに依存ライブラリを追加する場合、[Maven Repository] (https://mvnrepository.com/)というサイトを利用することがありますが、このプラグインを利用するとIntelliJ IDEAの操作だけで簡単に依存ライブラリを探しプロジェクトを追加することができます。

* [Package Search] (https://plugins.jetbrains.com/plugin/12507-package-search)

> Find and manage dependencies for JVM and Kotlin Multiplatform projects. Supports Maven and Gradle projects. 

この記事は、以下のコーディング中に`Gson`をMavenプロジェクトに追加するという想定で、パッケージ検索プラグインを利用する場合と利用しない場合の操作手順の違いを比較する形でまとめました。

```Java
public class MyProjectService {

  public MyProjectService() {
    Gson gson = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create();
  }

}
```

**環境**

* Windows 10 Professional 1903
* IntelliJ IDEA 2019.3.4

**参考**

* [Package Search on the Web] (https://blog.jetbrains.com/idea/2020/04/package-search-on-the-web/)


## パッケージ検索プラグインを利用しない場合

`Gson`という部分でクイックフィックス (<kbd>Ctrl + Enter</kbd>) すると、図のメニューが表示されるので、この中の`Add Maven Dependency...`を選択します。
![intellij_idea_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22772/b15f3661-4a36-79b0-87b7-a88be2233346.png)

Maven Artifact Search画面が開くので、Search for artifactタブの検索フィールドに`Gson`と入力して<kbd>Enter</kbd>を押します。
検索結果から`com.google.code.gson:gson:2.8.6`を選択し`Add`ボタンをクリックします。
![intellij_idea_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22772/331ff2d2-0613-5413-ef5d-52d2f2a1cb80.png)

バージョンを変えたい場合、`com.google.code.gson:gson:2.8.6`をクリックするとバージョンの一覧が展開されるので、任意のバージョンを選択します。
![intellij_idea_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22772/190d66db-ac97-ff2a-c164-23658aae4fa3.png)

Mavenの場合は自動的にpom.xmlファイルの依存関係に`Gson`が追加されます。

以上がパッケージ検索プラグインを利用しない場合の操作です。

## パッケージ検索プラグインを利用する場合

**プラグインのインストール**

マーケットプレイスから"package search"という検索文字でプラグインを探しインストールします。
![intellij_idea_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22772/26faf21c-5ca9-a512-17ba-3b47b82c1f06.png)

`Gson`という部分でクイックフィックス (<kbd>Ctrl + Enter</kbd>) すると、図のメニューが表示されます。この中に`Package Search`が追加されているのでこれを選択します。
![intellij_idea_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22772/30acf759-6078-de7c-52be-068a84a02516.png)

`packages`ビューが開き`Gson`で検索した結果が表示されます。この中から`com.google.code.gson:gson`を選択します。
![intellij_iade_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22772/83d58325-6ff7-46dd-219e-240b3bff1a3a.png)

すると右側に選択した依存ライブラリの詳細が表示されます。ここでバージョンやスコープを確認もしくは変更し、緑色の＋アイコンをクリックします。
![intellij_idea_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22772/8337092a-cc49-6dfa-758e-15d27d2c29bf.png)

Mavenの場合は自動的にpom.xmlファイルの依存関係に`Gson`が追加されます。

以上がパッケージ検索プラグインを利用した場合の操作です。

## packagesビューについて

ちなみに`packages`ビューは依存ライブラリの検索と追加だけではなく、プロジェクトの依存ライブラリを管理することができます。
`packages`ビューを開くと、図の左側にそのプロジェクトの依存ライブラリが一覧で表示されます。依存ライブラリに新しいバージョンがある場合はそのバージョンが表示されます。また依存ライブラリを除去することも可能です。
このように直接プロジェクトファイルを開いて編集することなく、プロジェクトの依存ライブラリを管理することが可能になっています。
![intellij_idea_13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22772/644eed1d-1942-3900-96d5-764a66f4f4ec.png)

## パッケージ検索サイトを利用する

パッケージ検索プラグインの他に、同じ検索機能を持つ[Package Search | JetBrains] (https://package-search.jetbrains.com/)というウェブサイトがあります。このサイトはIntelliJ IDEAのパッケージ検索プラグインに連携しています。
![intellij_idea_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22772/ef52d45f-a6da-401a-b015-1c986f7e4e79.png)

**依存ライブラリの検索**

検索フィールドに`Gson`と入力して検索すると候補が表示されます。この中から`com.google.code.gson`を選択します。
![intellij_idea_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22772/f667f06a-dc93-9561-153f-55124fe4993a.png)

**パッケージ検索プラグインをインストールしていない場合**

依存ライブラリの詳細が表示されます。パッケージ検索プラグインをインストールしていない場合は、このページの下に表示されているコードをコピーしてpom.xmlへペーストします。
![intellij_idea_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22772/748493f4-c43e-cdfc-fb2b-21c688bd5acb.png)

**パッケージ検索プラグインをインストールしている場合**

IntelliJ IDEAにパッケージ検索プラグインがインストールされており、且つIntelliJ IDEAで対象のプロジェクトを開いている状態だと、右上の`Add project`ボタンをクリックして依存ライブラリを自動的にプロジェクトへ追加できます。

ボタンをクリックするとプロジェクト名 (この例では`demo-java13-webflux`がプロジェクト名) が表示されるのでクリックします。
![intellij_idea_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22772/0861c4c7-860f-18fa-07eb-4cf4718033a0.png)

あとは検索プラグインを利用したときと同様の操作になります。
IntelliJ IDEAの`packages`ビューに反映されるので、この依存ライブラリで問題なければ緑色の＋アイコンをクリックしてプロジェクトへ追加します。
![intellij_idea_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22772/3270b0e9-c811-c33e-3025-d5eb2f30902f.png)

# まとめ

プロジェクトファイルの依存関係の管理にパッケージ検索プラグインを利用すると、プロジェクトファイルをエディタで編集する必要がなくなり、すべてIntellij IDEAのUI操作で完結することができます。
この記事ではMavenプロジェクトを例に取り上げましたが、Gradleプロジェクトでも同じことができます。