質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

eclipse(STS)からgithubよりインポートして動作確認がしたい

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,448

sanezane

score 72

spring bootの勉強をしています。
一部の方には大変お世話になっております。

 やりたいこと

eclipse(STS)からgithubよりインポートして動作確認がしたい

ECサイトハンズオン
上記githubよりeclipseにてインポートしました。

インポート手順...ファイル→インポート→Git→Gitからプロジェクト→クローンURI→(URIを入力)→次へ→次へ→ディレクトリを指定し次へ→一般的なプロジェクトしてインポート(次へ)→完了

インポートはうまくできたようなのですが、src以下に適当なパッケージを作成しようとした際に以下のようなエラーが出てパッケージが作成できません。

"ソースフォルダはJavaプロジェクトではありません"


※インポート時点ではエラーは出ていない。

 Javaプロジェクトへ変換しようと考えた

 やったこと

1.プロジェクトを右クリック→プロパティ→プロジェクトファセットにてJavaにチェックを入れて適用
⇒パッケージは作成できるようになったが、以下画面のようにエラーが出てしまう。

イメージ説明

 JavaプロジェクトじゃなくてMavenプロジェクトへ変換してみようと考えた

2.mvn eclipse:eclipseコマンドにてmavenプロジェクトへ変換?
以下のリンクの3つ目の回答を参考にコマンド実行
Eclipseの "ソースフォルダはJavaプロジェクトではありません"エラー
⇒パッケージは作成できるようになったが、以下画面のようにエラーが出てしまう。

3.1にてJavaプロジェクトへ変換したものをMavenプロジェクトへ変換(プロジェクトを右クリック→構成)
⇒エラー画面変わらず

技術的な要素の薄い質問で大変恐縮ですが、「変換する方法が違う」、や「インポートの仕方が違う」などご意見がありましたら大変うれしく思います。宜しくお願い致します。

自分のローカル環境
■apache-maven-3.6.0
■jdk1.8.0_172
■sts-4.0.1.RELEASE

■追加情報
・Maven依存関係キャプチャ
イメージ説明

・ch01ブランチの実行構成キャプチャ
イメージ説明

・ch06実行時のエラー(ch01のプロジェクト名が入っているため指定するプロジェクトが違うと推測。しかし、それを変える方法がわからない)

[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.3.3.RELEASE:run (default-cli) on project jsug-shop: An exception occurred while running. null: InvocationTargetException: Error creating bean with name 'enableRedisKeyspaceNotificationsInitializer' defined in class path resource [org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfiguration.class]: Invocation of init method failed; nested exception is org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool: java.net.ConnectException: Connection refused: connect -> [Help 1]
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+2

貼付して頂いたスクリーンショットから推測できるのは、Mavenプロジェクトへの変換に失敗していて、プロジェクトに必要な依存ライブラリ(Spring Bootなど)が解決できていないという点です。
GitHubからプロジェクトのインポートまでの手順に問題はないように思いますが、その後の作業でなにか必要な操作が抜けてしまったのかもしれません。

なので、下記に私が行った作業の内容を提示致しますので、ご自身が行われた作業内容と照らし合わせてみてください。
どうしてもエラーが解決できない場合で、且つインポートのしなおしが可能な場合は、いったんインポートしたプロジェクトを削除して(Windows上に出来ているファイルやディレクトリも削除)、再度インポートして下記の作業を行ってみてください。

なお、このプロジェクトはLombokが必要なので、STSにLombokがインストールされている必要があります。
スクリーンショットのエラー状況から推測するに、まだインストールされていないようなので、STSを一旦終了した状態でLombokをインストールしておいてください。
(インストールの仕方はご存知だとおもいますが、ねんのため説明すると、Lombokのダウンロードサイトからlombok.jarというファイルをダウンロード → lombok.jarをダブルクリック → インストール画面が立ち上がるので、"Specify location..."ボタンをクリックしてSTSのインストールディレクトリを指定 → "Install / Update"ボタンをクリック → インストールが完了したら画面右したの"Quit Installer"をクリック)

インポート後
GitHubからプロジェクトをインポートした直後の状態です。
インポート後

Maven Projectへ変換後
パッケージエクスプローラー上のプロジェクト名を右クリック → "Configure" → "Convert to Maven Project"を選択した後の状態です。
MavenProject

Mavenプロジェクトに変換できると、

  • 1) プロジェクト名に左側に表示されているアイコンにMという字が付きます。(上の画像では見にくいですが拡大すると分かると思います)
  • 2) "Maven Dependencies"が表示されます。

Maven Dependencies
Maven Dependenciesを開くと、プロジェクトが依存するライブラリを確認できます。
この図を見るとSpring BootやSpring Frameworkなどのjarファイルが確認できると思います。

MavenDependencies

通常なら、この段階でプロジェクトのインポートは完了していて、開発やビルドなどが行える状態になっていると思いますが、ごくまれに依存ライブラリのダウンロードができていなかったり、Mavenプロジェクトへの変換が失敗していることがあります。
そのような場合は、まず下記の"Update Project"を実行してみます。

Update Project
パッケージエクスプローラー上のプロジェクト名を右クリック → "Maven" → "Update Project"を選択します。
MavenUpdate

この操作はpom.xmlを編集して依存ライブラリを追加したり減らしたりした後にもよく実行します。

pom.xml
依存ライブラリを確認する方法としてpom.xmlファイルを開いたエディタの"Dependency Hierarchy"を見るというのもあります。
pom.xmlファイルをダブルクリックすると、通常はエディタ画面が開きますが、その画面下にある"Dependency Hierarchy"タブを選択すると図のように依存関係が確認できます。

pom.xml

2018/11/28 追記

Mavenで指定するゴールについて

このゴールは、Spring BootアプリケーションをMavenから実行する際に指定するゴールです。なので特に間違っていることはありません。

spring-boot:run

このときに発生したエラーの原因ですが、下記のエラーメッセージの内容から考えると、アプリケーションがRedisに接続できないことが理由と思います。

Invocation of init method failed; nested exception is org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool: java.net.ConnectException: Connection refused: connect

pom.xmlを確認すると下記のライブラリが記述されていたので、このアプリケーションはRedisを必要とするようです。
ちなみに、このspring-boot-starter-redisという依存ライブラリはSpring BootでRedisを利用するときによく利用されます。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-redis</artifactId>
</dependency>

なので、このアプリケーションを実行するにはお使いのPCにRedisをインストールし、事前に起動させておく必要があります。
Redisをインストールしていない場合は、インストールの仕方などGoogleで調べてみてください。

それからspring-boot:run以外でよく使うゴールには、

clean package

というものがあります。
このゴールを指定して実行すると、まず、以前のビルドで生成されたclassファイルやjarファイルなどがあれば削除し、次にソースコードをコンパイルしてjarファイルやwarファイル(成果物)を生成します。
jarファイルやwarファイルはプロジェクトのtargetというディレクトリの下に生成されます。

試しに、このゴールを実行してみて正常にビルドできるか確認してみてください。
ビルドが正常に終了するとコンソールに下記のようなメッセージが終了されると思います。

...省略...

[INFO] --- spring-boot-maven-plugin:1.3.3.RELEASE:repackage (default) @ jsug-shop ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 16.283 s
[INFO] Finished at: 2018-11-28T22:57:06+09:00
[INFO] ------------------------------------------------------------------------

lombokのインストールについて

追加で貼付して頂いたスクリーンショットを見る限りlombokが有効でないように思います。
インストールはされているということですが、いくつか確認して頂きたい点があります。

1) 次の画面を確認してください。
メニューバー → "Help" → "About Spring Tool Suite 4"
下の図の画面が表示されると思いますが、Lombokがインストールされているとマーカーで囲った表記が追加されているはずです。
help

2) メニューバー → "Project" → "Clean..."でプロジェクトをクリーンしてみてください。

3) メニューバー → "Project" → "Build Automatically"にチェックが付いているか確認してください。

4) Accountクラスのソースファイルを開いて、エラーがおきていないか確認してください。
このスクリーンショットは私の環境で確認したものです。
Account

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/11/28 02:32 編集

    いつも丁寧な回答ありがとうございます。
    rubytomatoさんの示された手順通りlombokについてもインストールして、確認しましたところプロジェクトのライブラリにも入っており、示されたパス内にjarファイルを確認できました。プロジェクトの更新も試しました。ですが、キャプチャの通りBuilderクラスの自動生成されているハズ?(まだこの辺りは勉強中であいまいです)のbuilderメソッドが定義がないと怒られます。
    import lombok.Builerの箇所にはエラーは出ていません。

    しかし、「・ch01ブランチの実行構成キャプチャ」の通りに実行してみるとビルドが通り!
    ローカル環境にて画面が見れました。(STS内エラーの×は出ている。)
    この流れでch06ブランチ(完成品)もインポートして実行構成の基底ディレクトリを${workspace_loc:/jsug-shop-06}へ変更してゴールはそのまま実行したところmavenの中でch01を実行するように引数が与えられたようなエラー(一番下に追記)が発生しました。

    このゴールという実行時の引数?は何を指定すればよいのでしょうか。
    ググったところ色んな値を入れているようで正解がわかりませんでした。
    ご教授いただければ幸いです。

    キャンセル

  • 2018/11/29 08:30

    追記しましたのでご確認ください。

    キャンセル

  • 2018/12/02 23:23

    まず、lombokでエラーが出ていた件についてですが、参照している場所にバージョンの違う2つのlombok.jarがあり、参照している方のインストールをもう一度実行したところエラーが消えました。
    実行についてですが、mainメソッドの入っているクラスから実行したところ実行できました。

    キャンセル

0

JavaプロジェクトじゃなくてMavenプロジェクトへ変換してみようと考えたで問題ないです。
ただ、このプロジェクトはlombokを使用しているためコンパイルエラーが出てると思われます。
はずしてたらすんません。

lombokのインストールについては以下の方法いずれかで可能だと思います。
1.このサンプルのインストール手順書?を確認する。
2.サンプルを作成した作者に問い合わせをする。
3.STS4へのlombokインストールについてgoogleで検索をする。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る