3
2

More than 3 years have passed since last update.

MavenでJavaプロジェクトを構築する

Last updated at Posted at 2020-11-24

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つのモジュールを作成

src/main/java/hello/HelloWorld.java
package hello;

public class HelloWorld {
  public static void main(String[] args) {
    Greeter greeter = new Greeter();
    System.out.println(greeter.sayHello());
  }
}
src/main/java/hello/Greeter.java
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ファイルを作成する

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!

参考

参考サイト

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2