1.環境
Windows10
JDK8以降
開発環境:VSCode
2.プロジェクトのセットアップ
2.1.プロジェクトディレクトリの作成
以下のフォルダ構成を作成する
C:
└ maven
└ demo
└ src
└ main
└ java
└ hello\
VSCodeにてCtrl+Shift+@
を入力してターミナル(PowerShell)を起動する
以下のコマンドでフォルダを作成してVSCodeでフォルダを開く
> mkdir C:\maven\demo\src\main\java\hello
> code -r C:\maven\demo
2.2.モジュールの作成
以下2つのモジュールを作成
package hello;
public class HelloWorld {
public static void main(String[] args) {
Greeter greeter = new Greeter();
System.out.println(greeter.sayHello());
}
}
package hello;
public class Greeter {
public String sayHello() {
return "Hello world!";
}
}
3.Mavenビルドのセットアップ
##3.1.Mavenのインストール
Apache Maven Projectから最新版のBinary zip archiveをダウンロードして解凍する
(今回は「C:\maven」に"apache-maven-3.6.3-bin.zip"を解凍する)
解凍したMavenのbinフォルダをシステム環境変数Pathに追加する(VSCodeのターミナル(PowerShell))
> setx PATH "env:path;C:\maven\apache-maven-3.6.3\bin"
> $ENV:Path.Split(";")
~
C:\maven\apache-maven-3.6.3\bin
> mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: C:\maven\apache-maven-3.6.3\bin\..
Java version: 15.0.1, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-15.0.1
Default locale: ja_JP, platform encoding: MS932
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
3.2.pom.xmlを作成
プロジェクトルート(今回の場合は「C:\maven\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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework</groupId>
<artifactId>maven-test</artifactId>
<packaging>jar</packaging>
<version>0.1.0</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>hello.HelloWorld</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
<modelVersion>
:常に4.0.0
<groupId>
:プロジェクトが所属するグループまたは組織。
<artifactId>
:プロジェクトのライブラリアーティファクト(.jarや.warファイル)に付けられる名前。
<version>
:ビルド中のプロジェクトのバージョン。実運用時にはデプロイのたびにアップすると良さそう。
<packaging>
:パッケージ方法。
4.プロジェクトのビルド
4.1.Java コードをビルドする
以下のコマンドを実行してビルドする
> cd c:\maven\demo
> mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------< org.springframework:maven-test >-------------------
[INFO] Building maven-test 0.1.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
(中略)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.567 s
[INFO] Finished at: 2020-11-24T11:03:47+09:00
[INFO] ------------------------------------------------------------------------
プロジェクトルートフォルダに「target」フォルダが作成され、classファイル等が作成されていることを確認する
以下ようなエラーが出た場合は、カレントディレクトリがプロジェクトルート(pom.xmlファイルが存在するフォルダ)になっていない可能性があるため、正しいフォルダにcd
する。
[ERROR] The goal you specified requires a project to execute but there is no POM in this directory (C:\maven\demo). Please verify you invoked Maven from the correct directory. -> [Help 1]
4.2.配布用パッケージを作成する
以下のコマンドを実行して配布用パッケージファイル(今回は.jarファイル)を作成する
> mvn package
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------< org.springframework:maven-test >-------------------
[INFO] Building maven-test 0.1.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18.008 s
[INFO] Finished at: 2020-11-24T11:26:26+09:00
[INFO] ------------------------------------------------------------------------
targetフォルダ直下にmaven-test-0.1.0.jar
ファイルが作成されていることを確認。
pom.xmlファイルで指定したartifactId+versionがファイル名になっている。
4.3.実行確認
jarファイルを実行するとHello world!が表示される。
> java -jar target\maven-test-0.1.0.jar
Hello world!