1
0

More than 1 year has passed since last update.

はじめに

こんにちは、まだしばらくは新人エンジニアだと思っている者です。
java触ってみたいなぁと思ったので(javaの資格が欲しくてw)ついでにフレームワークもやろう!
くらいのノリでとりあえず環境構築していきます。Spring Frameworkよりはシンプルと見たのでそれを信じております。
勉強するならフレームワーク触る前にやった方がいいやろ!というご意見は確実にあるかと思いますが(僕はそう思った。。)フレームワークいじる方が楽しそうなので流されてきました。

containerで構築

javaコンテナの作成をこちらの記事を参考に進めてみる。
Docker × Spring Boot環境構築

上記の記事に沿って進めるとGradleのビルドが上手く行きませんでした。

# javaコンテナにインスペクション
$ docker-compose exec java bash

# gradleビルド
$ sh gradlew build
xargs is not available

docker-compose exec java bashのコマンドでjavaのコンテナの中に入り
ビルドすると、xargs is not availableが出力されビルドができません。

xargs is not availableが表示される件

方針の変更

ここまで来てそのままやっても上手くいかないので方針を変更しました。
インストールとかあんまりしたくないな。。という気持ちも強くなってきたのでRemote Container(.devcontainer)で作成するように方針を変えていきます。

RemoteContainerでの構築

一度まっさらにする。

ありがたいことに同じようなことをしてる方がいたので参考にしました。
結局dockerを完璧に理解してないから時間もかかるし良くないんでしょうね。
しかしそっちに手を回す余裕がない、、

container部分は参考コードを参照しました。
build後はほぼSpring BootをVSCodeで「Hello World」を表示させてみたの通りに進めております。

Configure Runtime for Language Server

なんだろう。。
image.png

devcontainer.jsonの設定がよろしくなかったので一旦localに起因するものはコメントアウトしておく。

HelloContorllerの作成。
/boot/demo/src/main/java/com/example/demo/controller/HelloController.java

package com.example.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {
    @RequestMapping("/hello")
	public String index() {
		return "hello";
	}
}

hello.htmlの作成。
/boot/demo/src/main/resources/templates/hello.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Hello!!!</title>
</head>
<body>
    <h1>HelloWorld</h1>
</body>
</html>

javaファイルを実行するとportが開くので8080/helloを開く。

image.png

HelloWorldが表示されました!

終わりに

HelloWorldの表示はなんとか出来ましたが、完璧な環境構築とは言い難いものでした。
更に修正を加えまたqiitaに出します。
何か良い情報などありましたらコメント頂けると幸いです。

参考にさせて頂いた記事一覧

参考コード
Spring BootをVSCodeで「Hello World」を表示させてみた
Spring Boot + Docker の Java 開発環境構築

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0