おおくまねこ

職業プログラマーです。興味のある話題を書いています。

Visual Studio Code (VSCode) で SpringBoot の実行時に Active Profile を指定する

はじめに VSCode で Active Profile を設定する場合、どうするのが良いだろうと調査したので書いておきたいと思います。 SpringBoot には Active Spring Profile という機能が存在します。 開発環境、本番環境で使うDBの種類やリクエスト先のサーバーURLが異…

Visual Studio Code (VSCode) でJavaの開発環境を用意する

はじめに 動機 私は普段Javaなどの開発をするとき、IntelliJ IDEA Ultimateを使って開発しています1。 しかし、私の周りの環境ではVisual Studio Code (VSCode)を使われるケースが多く、 Javaの開発もVisual Studio Codeで整えたいという要望があるのですが…

Intellij IDEA の GUI から force push したい

JetBrain IDE から remote branch に対して force push をするための方法について git push -f 相当をしたい場合です。 どこかに書くほどではないのですが、最初わからず彷徨っていたので備忘録も兼ねて記載します。 環境については以下 MacBook Air(M1 202…

「良いコード/悪いコードで学ぶ設計入門―保守しやすい 成長し続けるコードの書き方」を読みました

はじめに 技術書を読みました。 読んだのは以下の本、「良いコード/悪いコードで学ぶ設計入門―保守しやすい 成長し続けるコードの書き方」です。 良いコード/悪いコードで学ぶ設計入門―保守しやすい 成長し続けるコードの書き方作者:仙塲 大也技術評論社Am…

M1 Macと docker compose の付き合い方について考えた

はじめに 背景 Mac Book Air 2020 年モデル、いわゆるM1 Macを買いました。 今まで使っていた Dockerを動かすとき、docker composeの使い方が変わったので、その内容について記載します。 まえがき CPUが Apple Silicon と呼ばれるもので、ARMプロセッサーの…

SpringBoot/Gradleのlogback脆弱性更新したときの方法

はじめに log4j2 の脆弱性 が2021年12月10日に報告され、 任意のプログラムを実行できる危険性があるため、早急に対応することが必要という事で話題になりました。 logback にも「同じ脆弱性の懸念がある」という報告が12月14日におこなわれました。 https:/…

Java /Gradle shadow プラグインの力で fat Jar を簡単に作る

はじめに 動機 環境 fat Jar について fat Jar を作る選択肢 Gradlew にshadow プラグインを使う すること build.gradle の編集 fat Jar 生成 動作確認 最後に はじめに 動機 今はあまりなくなってしまいましたが、Java のプログラムを fat Jar として作って…

scala-steward を個人レポジトリの GitHub Actions で動作させられた記録

はじめに scala-steward とは モチベーション なぜ scala-steward か GitHub Actions で動かす理由 設定方法 前提条件 設定に必要なこと 設定手順 GitHub App を生成 GitHub App の秘密鍵を生成 scala-steward 実行用レポジトリを生成 secret の設定 GitHub …

Scala/sbt で設定した依存関係がコンフリクトしてしまったら

概要 Scala/sbt を使っていて、依存関係で追加したライブラリ間で依存関係が衝突してしまったときにどうすればいいかという内容です。 Java/gradle だと自動的に新しいバージョンを使うようしてくれていたのですが、どうも sbt ではそうはいかないらしいとい…

sbt1.4系からsbt1.5系に移行したいけどうまくいかなかったあなたへ

はじめに Scala のビルドツール sbt のバージョンアップをするときに途方にくれていたのですが、 実は結構簡単にできる方法があると教えてもらったので、その時のことを記録しています。 特に 1.4 系から 1.5 系に移行するときに大幅な変更があり、その差分…

Gradle で Java のユニットテストを1つのクラス、1つのテストだけ実行する方法

内容 備忘録としての内容です。 Javaで開発している際、ユニットテストを実装して動作確認すると思います。 普段は IDE でテストの実行をすると思いますが、その際はテストの実行を選択すれば自動的に設定して、実際に実行したい単位でテスト実行することが…

IntelliJ で Java のビルド時にバージョン関係ではまった時に確認する箇所

概要 小ネタ系 Intellij でJava の開発をしていて、ビルド時にエラーになってしまう、 特にコードの構文が合っているのにエラーになってしまう場合に、 どこをどのように確認・修正するばいいのかについてまとめてみました。 自分は Java17 の preview 機能…

SpringBoot でログレベルを変更する

概要 SpringBoot でログレベルを変える方法について記載します。 記載した経緯 以下の理由からまとめてみようと思っています。 ログレベルの設定変更について、何度か説明機会があったこと やること自体は複雑ではないため ログレベルを変更するユースケース…

Intellij IDEA で複数画面を開いているときにキーボードショートカットでウィンドウ切り替えしたい

Intellij IDEA で複数画面を開いているときにキーボードショートカットでウィンドウ切り替えしたい IntelliJ IDEA で複数画面開いているときに、キーボードの入力からのショートカットコマンドで画面切り替えしたい場合どうすればよいかという話です。 Intel…

mockito でコンストラクターの mock を使ったテストをしたい

はじめに 今回は「mockito を使ったコンストラクターを mock 化する方法」について記載します。 Java でユニットテストを記述する際に利用するモックライブラリ mockito の使い方のひとつの説明です。 以前、以下で「mockito を使った static メソッドを moc…

Slack のチャンネルにメッセージを送信するために Incoming Webhook を使って送信する

はじめに 概要 Slack にメッセージを送信するため、コマンドラインの curl やプログラムから HTTPリクエストをよるAPIを用いた投稿をする方法がありますが、 そのやり方をいつも忘れてしまうので履歴として残しています。 Slack API にリクエストするアプリ…

docker-compose と docker サブコマンドの compose って結局どっち使えばいいのかという話

始めに 書いていること Docker 管理する方法に Docker Compose を使う方法があります。 その実行する時のコマンドが複数あり、「結局どっちを使うといいのか?」、「何が違うのか?」というのが意外と情報としてないらしいので、ブログにまとめてみようと思…

AWS EC2 インスタンス上で tcp 接続できる Docker を構築する

はじめに リモートのサーバー上で起動する Docker にローカル環境のIDEなどから接続できる環境が欲しく、 AWS ec2 インスタンス上で作ってしまおうというのが事の発端です。 正確には、リモートで接続できる環境を作るためのIDEからの接続確認できる環境をつ…

mockito で static メソッドの mock を使ったテストをしたい

はじめに お久しぶりです。 最近、いろいろバタバタしていてここの更新もすすんでませんでしたが、 アウトプットの機会を継続できたらと思い、また何か書いていこうとしています。 4月に異動になってしまい、Java を使わない部署になったのに、なぜかスポッ…

Intellij IDEA で Cannot load infomation for github.com/アカウント名: Request response: Bad credentials が出る時の対処方法

概要 IntelliJ IDEA を使っている際、「Share Project On GitHub」を選択したときに以下のエラーがでる時があります。 「Cannot load infomation for github.com/アカウント名: Request response: Bad credentials」 これの原因と対処方法について記載します…

IntelliJ IDEA でつくったローカルプロジェクトを GitHub 連携

IntelliJ IDEA で GitHub 連携する 最初に IntelliJ IDEAを使って GitHub 連携について説明します。 仕事やそれ以外でも連携方法について説明したりする場面があるのですが、 せっかくなのでまとめておこうと思って記載しています。 Android Studio とかでも…

Scala/Sbt の依存ライブラリ追加でパッケージが見つからないときにリゾルバーを追加したい

背景 Scala/Sbt を使ってプログラミングを開発しているとき、 ライブラリやプラグインを追加する際に「パッケージが見つからない」という場合があります。 パッケージ名まで書くと scalatyped.converter を sbt plugin として入れたかったのですが、見つから…

Scala/Sbt の依存ライブラリ追加でパッケージが見つからないときにリゾルバーを追加したい

背景 Scala/Sbt を使ってプログラミングを開発しているとき、 ライブラリやプラグインを追加する際に「パッケージが見つからない」という場合があります。 パッケージ名まで書くと scalatyped.converter を sbt plugin として入れたかったのですが、見つから…

SpringBoot で設定ファイルの値を Class に設定したい

背景 SpringBoot を使って、設定ファイルに値を入れて扱いたい場合が多く、 やり方を残しておきたいので記述します。 以下のような場合には、設定ファイルに切り出しておく方がよいかなと思っています。 URLやタイムアウト値などの頻繁に書き換える可能性の…

Windows でも docker-compose が使いたい

最初に 背景 docker-compose は便利なツールだとおもっています。 開発環境・動作環境でdocker を使うときに「DBと一緒に使いたい」とか、 「複数のアプリケーション起動させて接続確認したい」とかの場合に、 それぞれのコンテナを一緒に管理できるので大変…

Typesafe Config を使って設定ファイルの値を Scala で読み込む

背景 個人的な用途としては、色々なライブラリを試したい場合にパラメーターを設定したい場合があるかと思います。 その際、ファイルに直書きしないで他のファイルに出しておきたい場面があります。 HTTPリクエストの向き先や設定を書き換える時に、コードの…

ScalaMatsuri 2020 発表スライドまとめ

はじめに 内容 TrackA Scala無双: フロントエンドもバックエンドも全てScalaでなぎ倒せ Scalaで解説する、ビジネスパターンによるモデル駆動設計 モジュラモノリスで表現する複雑なドメイン領域と境界 Re-architecting in GANMA! フレンドリーな関数型プログ…

docker-compose コマンドをアップデートする

背景 docker-compose で環境構築するのに、新しいバージョンの docker-composer.yml を動かしたくなりました。 使っていた docker-compose のバージョンが 1.13 とかだったので、docker-composer.yml のバージョンは 3.0 くらいまでしか使えませんでした。 …

Intellij で gradle build が Java のバージョン不一致でコンパイルエラーする

概要 Intellij を使っている場合、IDEの build ジョブ実行時に以下のエラーで失敗する場合。 Could not target platform: 'Java SE XX' using tool chain: 'JDK YY (YY)'. ※XX, YY は一致しない任意のバージョン 原因 どういう時に起こるかというと、 build.…

Intellij IDEA で「sbt project name must be a valid Scala identifier」

概要 Intellij IDEA で Scala(play 2.x)プロジェクトを作ろうとすると掲題のエラーになる 使っている環境 Inteliij IDEA Ultimate Edition(2020.1) Centos 7 手順 [File] -> [New] -> [Project...] を選択 「New Project」のダイアログから [Scala] -> [Pl…