ナレッジ共有OSS「Knowledge」をデバッグする

# 概要

Qiitaライクなナレッジ共有ツール「Knowledge」を導入した.
デバッグ・開発の方法がまとまってなかったので備忘録としてまとめる

https://information-knowledge.support-project.org/ja/

Knowledgeの見た目はこんな感じ

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/086b8853-6f39-f80d-4aac-8e7683701839.png" width="500">

# 手順

## Java11をダウンロードする

SDKMANなどのJDK管理ツールを使うのがオススメ

https://sdkman.io/install

```sh
$ sdk install java  8.0.382-amzn
```

## Eclipseをインストールする

最新版をインストールする

https://www.eclipse.org/downloads/

## Eclipseを起動し、ワークスペースを設定する

ワークスペースのフォルダは任意の場所に作成する

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/9805c78b-9ed3-c894-809a-79b6d43da56e.png" width="500">

## Java11をEclipseに設定する

① Eclipseの 「設定」 を開く

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/d13d22d7-c8a0-5c25-3db3-f2c9d13e99f8.png" width="300">

② 「Java」 → 「インストール済みのJRE」 を開く

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/ed47bdb3-2c94-dbd7-f372-dc0997bdbfef.png" width="500">

③ JREホームにJava11のパスを設定する

Java11のパスを入力し、完了を押す
Javaのパスがわからないとき`where java`などで調べる

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/9d6b4860-2c3c-3de3-693d-eea2c6566afc.png" width="500">

## Eclipseの 「ヘルプ」 から Eclipse マーケットプレースを開く

マーケットプレースが表示されていない場合、以下を参考にEclipseにダウンロードする

https://miya-system-works.com/blog/detail/117

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/358632b8-4707-9406-baeb-9a967ace2f6c.png" width="300">

## Eclipse マーケットプレース から以下の拡張機能をダウンロードする

eclipse tomcat plugin 9.1.4
![スクリーンショット 2023-09-14 23.00.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/f010760f-53f3-24bd-6e31-73259c67c837.png)

eclipse enterprise java and web developer tools 3.30
![スクリーンショット 2023-09-14 23.03.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/bf289466-0499-cc1c-8e13-88f61b423572.png)

Maven (Java EE) Integration for Eclipse WTP (Luna/Mars) 1.2.0
![スクリーンショット 2023-09-14 23.10.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/e4c98312-e120-456b-4c6a-2b1542fa1368.png)


## KnowledgeプロジェクトをGitHubからクローンする

既存のプロジェクトがメンテされてなかったので、Forkして修正した

https://github.com/ebi-yu/knowledge

## Eclipseにknowledgeプロジェクトを追加する

① Eclipseからファイルのインポートを選択

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/0fe3d12f-a391-0996-95d9-e1d49cd7d1ab.png" width="300">

② 既存 Maven プロジェクトを選択

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/5752607a-3572-cb38-3e4e-b037c94e4e95.png" width="500">


③ クローンしたknowledgeプロジェクトのパスを入力し、完了を押す

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/a601dc65-fa5f-a8f7-be93-c68da10319b3.png" width="500">

④ プロジェクトが追加されたことを確認する

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/c937c501-4dfc-991d-3dc5-f1a86e841331.png" width="500">


## Tomcat9をダウンロードし、適当なところに解凍する

https://tomcat.apache.org/download-90.cgi#9.0.80

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/c5e350bb-9b4c-e5d7-246c-ad0862172c79.png" width="500">

### Eclipseにサーバビューを表示する

① Eclipseから 「ウインドウ」 の 「ビューの表示」 の 「その他」 を選択する

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/0a8ca754-a15c-c9e2-96d5-6dbfa0b2585e.png" width="500">

② サーバを検索し、開くを押す

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/c1bf11e4-771a-1062-f68f-98a81fc64a60.png" width="500">

### Eclipseにサーバを追加する

① サーバビューを右クリックし「新規」 から 「サーバー」 を選択する
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/788fb70a-47b3-6013-e319-615e885ffc0a.png" width="500">

② サーバのタイプから 「Tomcat v9.0サーバ」 を選択する

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/ecf3d343-58bf-3260-b86b-d5c384daf475.png" width="500">

③ Tomcatインストール・ディレクトリーに、ダウンロードしたtomcatのパスを入力し 「完了」 を押す

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/46a0f311-e7e4-a955-01f1-ba4739fe8b72.png" width="500">

④ サーバーにtomcat9が追加されたことを確認する 

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/9d4a4b6c-7d2f-4321-1403-f66e82345edb.png" width="500">

### EclipseにTomcatのサーバを追加する

① Tomcat9のサーバーを右クリックし、 「追加および除去」 を押す
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/afb6061f-c806-8434-9603-6340e6b5be65.png" width="500">

② Knowledgeをサーバに追加し、完了を押す
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/d9118ee8-ccdb-ba21-cabf-030e429f17ed.png" width="500">

## Tomcatサーバを起動し、Knowledgeにアクセスする

① Tomcat9のサーバーを右クリックし、 デバッグを選択する

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/47b86b81-f5b1-0dd3-efeb-44ee1fb0d113.png" width="500">

② アクセスできることを確認する

http://localhost:8080/knowledge/open.knowledge/list

③ サーバの起動でエラーが起きる/CSSがうまく反映されない場合は以下を確認する

* Javaのバージョンは11かどうか
* Eclipseを再起動し、Tomcat9をもう一度追加し直す
* `mvn install -DskipTests=true -Dmaven.javadoc.skip=true -e `でKnowledgeプロジェクトをビルドしてみる

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/6d51102e-13a0-3b01-aedb-cf8cb9129132.png" width="600">

## デバッグする

Break Pointをおいて処理が止まることを確認する

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2703812/b97464f7-4bc2-706f-50f7-3737e4d5bbae.png" width="600">