DevinでJava環境をセットアップする

7 min

Devinを利用したので、セットアップ時のエラーや対応内容、所感を記録しておく。

そもそもなぜ Devin を利用するのか

Devinを業務で使う可能性があり、どのような動作感なのかを把握するため。以下の観点で検証することにした。

  • インターフェースの違い:Slack で Devin へ指示するユースケースが多いが、Web からでも問題なく利用できるのか
  • ドキュメント作成支援:コードベースを理解して README ファイルをブラッシュアップできるか
  • バグ対応:テストでエラーが起こっている状況を解決できるか

前提

言語とフレームワークは以下の通り。

  • Java 21
  • Spring Bootによる REST API アプリ

詳細な技術スタックは以下を参照。

t-uejoblog-api

Loading repository data...

-- -- --

Core プラン契約と ACU の追加取得

Devin の契約はCore プランで行った。

プロモーションコードがあると10ACUを追加取得することができた。以下のサイトを参考にした。

参考:【2025 年最新】Devin AI のプロモーションコード:最大 200 ドル分のクレジットを獲得する方法

IMPORTANT

契約せずに 10ACU はもらえない。

マシンセットアップ

リポジトリを設定すると、自動的にマシンが準備され、コードベースのインデックス化が完了した。

Devin マシンの自動設定が進行中の画面
Devin マシンの自動設定が進行中の画面

Start Setupを押下し、以下の画面からセットアップを開始する。ここで少し待つとWeb IDEが表示される。

Devin マシンセットアップの開始画面
Devin マシンセットアップの開始画面

エディター環境

Devin ではWeb ベースの IDEが提供される。UI はVSCodeと変わらない。

Devin の Web ベース IDE 画面
Devin の Web ベース IDE 画面
NOTE

初期設定ではJava や Dockerがプリインストールされており、多くの開発ツールがすぐに利用可能な状態だった。

Java バージョンの課題と解決

プロジェクトのビルド時にJava バージョンの不一致でエラーが発生した。

Java バージョン不一致によるエラー画面
Java バージョン不一致によるエラー画面
IMPORTANT

Devin の仮想マシンにはJava 17がプリインストールされているが、プロジェクトはJava 21を要求していた。(2025/06/02 時点) Java 17 がインストールされていることを確認した画面

Java 21 への対応

以下のコマンドを実行してJava 21をインストールし、デフォルトに設定した:

cd ~/repos/blog-api && \
curl -s "https://get.sdkman.io" | bash && \
source "$HOME/.sdkman/bin/sdkman-init.sh" && \
sdk version && \
sdk install java 21.0.7-amzn && \
sdk default java 21.0.7-amzn && \
java -version
TIP

SDKMANを使用することで、複数の Java バージョンを管理し、プロジェクトごとに適切なバージョンを使用できる。

環境セットアップの完了

Java 21の設定が完了し、プロジェクトが正常にビルドできるようになった。

Java 21 セットアップ完了を示す画面
Java 21 セットアップ完了を示す画面
NOTE

環境のセットアップ作業中はACU の消費がないことも確認できた。実際のコーディング作業時のみ ACU が消費される仕組みのようだ。

セットアップ時の ACU 消費状況を示す画面
セットアップ時の ACU 消費状況を示す画面

まとめと所感

Devin の初期設定を通じて感じたポイントは以下の通り。

  • 多くの言語・フレームワークがプリインストールされているためセットアップが楽
  • 初期設定のトライ&エラーではACU が消費されない
  • Core プランなので、ACU は貴重に扱わないといけない。消費されることへの危機感が常にある
  • Web IDE からの利用でも問題なく利用できる。(ただし、日本語対応していない)

WARNING

記事の作成に際して、以下の作業のみ AI で実施しました。

  • 文章の誤字脱字の検知
  • 読みやすい文章への変換
  • Markdown スタイル適応