Visual Studio CodeによるSpring5 MVC Webアプリ開発　Mavenひな型作成編

#はじめに
環境構築は[こちら](https://qiita.com/t_skri/items/b16cd5a8868398ca0fc2)を参考にして下さい。

直接Java11プロジェクトを作成する方法が見つけられませんでしたので、まずJava8プロジェクトを作成します。
作成後、Java11の設定に変更します。

#環境
OS:Windows 10 Pro 64bit
Editor:Visual Studio Code 1.42.1
JDK:AdoptOpenJDK 11.0.6+10 x64
Apache Maven:v3.6.3

#雛形作成
Visual Studio Codeのコマンド入力でも出来ると思いますが、今回はコマンドプロンプトにコマンドを入力して作成します。
コマンドプロンプトを開いて、雛形を作成したいフォルダに移動して下さい。
今回は「D:\JAVA\Project」に作成します。

```
mvn archetype:generate -DinteractiveMode=false -DarchetypeGroupId=pl.org.miki -DarchetypeArtifactId=java8-quickstart-archetype -DgroupId=com.example -DartifactId=hello -Dversion=1.0-SNAPSHOT -Dpackage=com.example -Dpackaging=jar
```

読みやすいように改行します。

```
mvn archetype:generate
 -DinteractiveMode=false
 -DarchetypeGroupId=pl.org.miki
 -DarchetypeArtifactId=java8-quickstart-archetype
 -DgroupId=com.example
 -DartifactId=hello
 -Dversion=1.0-SNAPSHOT
 -Dpackage=com.example
 -Dpackaging=jar
```

任意で指定する箇所は以下になります。
-DgroupId
グループIDになります。製作者や会社、団体などを識別するためのものです。

-DartifactId
アーティファクトIDになります。プロジェクト名とも言えると思います。

-Dversion
バージョンの指定が出来ます。
特にこだわりが無ければ、「1.0-SNAPSHOT」で良いと思います。

-Dpackage
基本は「-DgroupId」と同じにします。

```
D:\JAVA\Project>mvn archetype:generate -DinteractiveMode=false -DarchetypeGroupId=pl.org.miki -DarchetypeArtifactId=java8-quickstart-archetype -DgroupId=com.example -DartifactId=hello -Dversion=1.0-SNAPSHOT -Dpackage=com.example -Dpackaging=jar
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:3.1.2:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:3.1.2:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO]
[INFO] --- maven-archetype-plugin:3.1.2:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Batch mode
[INFO] Archetype [pl.org.miki:java8-quickstart-archetype:1.0.0] found in catalog remote
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: java8-quickstart-archetype:1.0.0
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.example
[INFO] Parameter: artifactId, Value: hello
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.example
[INFO] Parameter: packageInPathFormat, Value: com/example
[INFO] Parameter: compilerMode, Value: simple
[INFO] Parameter: package, Value: com.example
[INFO] Parameter: groupId, Value: com.example
[INFO] Parameter: testLibrary, Value: junit
[INFO] Parameter: artifactId, Value: hello
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Project created from Archetype in dir: D:\JAVA\Project\hello
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  5.255 s
[INFO] Finished at: 2020-03-08T15:28:02+09:00
[INFO] ------------------------------------------------------------------------
```
このようなフォルダ構造で作成されます。

```
D:.
└─src
    ├─main
    │  └─java
    │      └─com
    │          └─example
    └─test
        └─java
            └─com
                └─example
```

#pom.xmlの変更
java.versionを11に変更します。

```xml:変更前
<java.version>1.7</java.version>
```
```xml:変更後
<java.version>11</java.version>
```

packagingはwarが好きなので、warに変更します。

```xml:変更前
<packaging>jar</packaging>
```
```xml:変更後
<packaging>war</packaging>
```

変更後のpom.xmlです。

```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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.example</groupId>
	<artifactId>hello</artifactId>
	<version>1.0-SNAPSHOT</version>
	<packaging>war</packaging>

 
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<java.version>11</java.version>
	</properties>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.1</version>
				<configuration>
					<source>${java.version}</source>
					<target>${java.version}</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

```

#まとめ
以上でひな型の作成は完了です。

#参考/出展
MavenでJava8のプロジェクトを作る
[https://qiita.com/mkamotsu/items/98c6d721a87a74f2b36f](https://qiita.com/mkamotsu/items/98c6d721a87a74f2b36f)