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 が使えたのでヨシ!
以上。
参考資料