タイガー!タイガー!じれったいぞー!(SE編)

AS400, Java, JavaEE, JSF等の開発、習慣など。日々の気づきをまとめたブログ(備忘録)

【VS Code】Java Mavenを試す

JJUGナイトセミナー「開発環境の最前線」を視聴させていただき、何か前進しないといけない気持ちになり、ようやく VS CodeJavaを試してみることにしました。

下記は、今回私が試した手順になります。

  • 動作環境
    • Window10 Pro 21H1 64bit
    • MS Open JDK11
    • Maven 3.8.4

(1) MS Open JDK11 のダウンロード/配備

docs.microsoft.com

環境変数設定

JAVA_HOME: C:\apps\java\jdk-11.0.14+9
Path: %JAVA_HOME%\bin

Version確認

>java -version
openjdk version "11.0.14" 2022-01-18 LTS
OpenJDK Runtime Environment Microsoft-30257 (build 11.0.14+9-LTS)
OpenJDK 64-Bit Server VM Microsoft-30257 (build 11.0.14+9-LTS, mixed mode)

(2) Maven のダウンロード/配備

maven.apache.org

環境変数設定

M2_HOME: C:\apache-maven-3.8.4
Path: %M2_HOME%\bin

Version確認

>mvn -v
Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Maven home: C:\apache-maven-3.8.4
Java version: 11.0.14, vendor: Microsoft, runtime: C:\apps\java\jdk-11.0.14+9
Default locale: ja_JP, platform encoding: MS932
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

(3) Java in VS Codeを取得

code.visualstudio.com

  • 取得したファイル
    • JavaCodingPack-0.4.1.exe

f:id:no14141:20220326125454j:plain

f:id:no14141:20220326125519j:plain

f:id:no14141:20220326130303j:plain

インストールが完了し、下記のディレクトリを確認すると、java関連の拡張機能が多数追加されていることがわかります。

> dir C:\Users\userName\.vscode\extensions

 C:\Users\userName\.vscode\extensions のディレクトリ

<DIR>          .
<DIR>          ..
<DIR>          redhat.java-1.4.0
<DIR>          visualstudioexptteam.vscodeintellicode-1.2.17
<DIR>          vscjava.vscode-java-debug-0.38.0
<DIR>          vscjava.vscode-java-dependency-0.19.0
<DIR>          vscjava.vscode-java-pack-0.22.0
<DIR>          vscjava.vscode-java-test-0.34.2
<DIR>          vscjava.vscode-maven-0.35.1

(4) Java Mavenプロジェクトの作成

Ctrl + Shift + Pキーで、コマンドパレットを開きます。

Javaと入力し「Create Java Project」を選択し、「Maven」を選択します。

f:id:no14141:20220326130419j:plain

f:id:no14141:20220326130436j:plain

f:id:no14141:20220326130448j:plain

(5) コード例

メインのJavaコードと、プロジェクト設定ファイルだけ掲載しておきます。

ビルド処理により、依存ライブラリも全て含めて、実行可能なjarファイルとしています。

demo\src\main\java\com\tigertaizo\App.java

package com.tigertaizo;

import com.google.common.base.Strings;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        String word = "Hello World!";
        if (!Strings.isNullOrEmpty(word)) {
            System.out.println(word);
        }
    }
}

demo\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.tigertaizo</groupId>
  <artifactId>demo</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>demo</name>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>31.1-jre</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
  <plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>
                                com.tigertaizo.App
                            </mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <appendAssemblyId>false</appendAssemblyId>
                </configuration>
            </execution>
        </executions>
    </plugin>
  </plugins>
  </build>
</project>

(6) ビルド

VS Codeの左下に、MavenのツールBoxが配備されていますので、こちらで、clean → package を実行して、アプリを構築することができました。

f:id:no14141:20220326130843j:plain

f:id:no14141:20220326130937j:plain

(7) 実行

VS Codeのターミナルで、jarを実行してみます。

f:id:no14141:20220326130858j:plain

無事に、jarを実行できました!

VS Codeでも、簡単にJavaプロジェクトを作成することがわかりました。 コード補完もやってくれますし、何より動作が軽いのがいいです!!!

今回、速さは正義であることをあらためて痛感させられることになりました。

また時間を見つけて、Gradleプロジェクトも試してみたいと思います。