AI コーディングというやつをやってみたかったのです。
前提
OS: Windows 11 Pro 23H2 ビルド 22631.5039
Docker Desktop: Version 4.37.1 (178610)
WSL2 の Ubuntu 24.04 から WSL Integration で Docker Desktop
を利用
Java プロジェクトを作って、 Hello,World! するのが目標
Claude Code のアカウントを作って $5 入金済み
devcontainer
用のファイル作成
.devcontainer/devcontainer.json
Maven の Java プロジェクトを作りたいので、 devcontainer の features
を利用してインストール
Claude Code に Node が必要なので、 devcontainer の features
を利用してインストール
{
"name" : "app" ,
"image" : "mcr.microsoft.com/devcontainers/base" ,
"features" : {
"ghcr.io/devcontainers/features/node:1" : { } ,
"ghcr.io/devcontainers/features/java:1" : {
"version" : "21" ,
"installGradle" : "false" ,
"installMaven" : "true"
}
}
}
.devcontainer/devcontainer.vim.json
devcontainer.vim config -g > .devcontainer/devcontainer.vim.json
で生成したものそのまま使う
{
"remoteEnv" : {
"EDITOR" : "~/squashfs-root/AppRun" ,
"PAGER" : "sed -r 's/\\x1B\\[[0-9;]*[mGKH]//g' | ~/squashfs-root/AppRun -R -" ,
"LESSCHARSET" : "utf-8" ,
"SHELL" : "bash" ,
"TERM" : "xterm-256color" ,
"HISTCONTROL" : "erasedups" ,
},
"mounts" : [
{
"type" : "bind" ,
"source" : "${localEnv:HOME} /.vim" ,
"target" : "/home/vscode/.vim"
},
{
"type" : "bind" ,
"source" : "${localEnv:HOME} /.gitconfig" ,
"target" : "/home/vscode/.gitconfig"
},
{
"type" : "bind" ,
"source" : "${localEnv:HOME} /.ssh" ,
"target" : "/home/vscode/.ssh"
},
],
}
開発環境の起動
Claude Code
のインストール・初期設定
インストール
Vim でターミナルを開き、以下コマンドを実行。
npm install -g @anthropic-ai/claude-code
初期設定
Vim でターミナルを開き、以下コマンドを実行。
表示のカラースタイルを聞かれるので答える(僕は
Light text
にした)
ログイン処理 2.1 Enter 押下で表示される URL
にアクセスし、ログインを行う 2.2
ログイン完了後に表示されるコードをターミナルにペーストし、 Enter
Yes, proceed
まで Enter を押し続ける
プロンプト入力画面が表示される
あとはここにやって欲しいことを入力していくだけ。
実装
プロジェクトの作成
claude へ次の命令を入力する。
Maven の Java プロジェクトを作り、 Hello, World! を表示したい。 Java のバージョンは 21 とすること。
今回は、以下のような処理を行ってくれた。
mkdir -p src/main/java/com/example
pom.xml
の作成
<?xml version="1.0" encoding="UTF-8" ?>
<project xmlns ="http://maven.apache.org/POM/4.0.0"
xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation ="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" >
<modelVersion > 4.0.0</modelVersion >
<groupId > com.example</groupId >
<artifactId > hello-world</artifactId >
<version > 1.0-SNAPSHOT</version >
<properties >
<maven.compiler.source > 21</maven.compiler.source >
<maven.compiler.target > 21</maven.compiler.target >
<project.build.sourceEncoding > UTF-8</project.build.sourceEncoding >
</properties >
<build >
<plugins >
<plugin >
<groupId > org.apache.maven.plugins</groupId >
<artifactId > maven-jar-plugin</artifactId >
<version > 3.3.0</version >
<configuration >
<archive >
<manifest >
<mainClass > com.example.App</mainClass >
</manifest >
</archive >
</configuration >
</plugin >
</plugins >
</build >
</project >
App.java
の作成
package com.example;
public class App {
public static void main (String[] args) {
System.out.println("Hello, World!" );
}
}
コンパイル(mvn compile
)
実行(mvn exec:java -Dexec.mainClass="com.example.App"
)
完了報告(Maven プロジェクトが正常に作成され、「Hello, World!」が表示されました。Java 21 を使用する Maven プロジェクトの基本構造を作成しました。
)
良い感じ。
…devcontainer.vim
特有のことが無かった気がするけれど、
Claude Code が使えたのでヨシ!
以上。
参考資料