🧤
Spring Initializrのmaven-wrapper.jarを取り戻す
TL;DR
$ mvn wrapper:wrapper -Dtype=bin
久しぶりにSpring InitializrでProjectをMavenにしたらmaven-wrapper.jarがなくなっていたので備忘録です。
$ ls -laR maven-project
maven-project:
total 36
drwxr-xr-x 4 spring spring 105 Sep 9 13:00 .
drwxr-xr-x 6 spring spring 4096 Sep 9 13:05 ..
-rw-r--r-- 1 spring spring 395 Sep 9 13:00 .gitignore
-rw-r--r-- 1 spring spring 1063 Sep 9 13:00 HELP.md
drwxr-xr-x 3 spring spring 21 Sep 9 13:00 .mvn
-rwxr-xr-x 1 spring spring 10665 Sep 9 13:00 mvnw
-rw-r--r-- 1 spring spring 6912 Sep 9 13:00 mvnw.cmd
-rw-r--r-- 1 spring spring 1421 Sep 9 13:00 pom.xml
drwxr-xr-x 4 spring spring 30 Sep 9 13:00 src
maven-project/.mvn:
total 0
drwxr-xr-x 3 spring spring 21 Sep 9 13:00 .
drwxr-xr-x 4 spring spring 105 Sep 9 13:00 ..
drwxr-xr-x 2 spring spring 38 Sep 9 13:00 wrapper
maven-project/.mvn/wrapper:
total 4
drwxr-xr-x 2 spring spring 38 Sep 9 13:00 .
drwxr-xr-x 3 spring spring 21 Sep 9 13:00 ..
-rw-r--r-- 1 spring spring 951 Sep 9 13:00 maven-wrapper.properties
...
こうなってる。
$ tail -3 maven-project/.mvn/wrapper/maven-wrapper.properties
wrapperVersion=3.3.2
distributionType=only-script
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
distributionTypeがonly-scriptになっているのが原因。
distributionTypeはscript, bin, source, only-scriptと4種類ある。
Maven Wrapper 3.3.0からMake "only-script" the default wrapperになった。
それに伴いSpring InitializrのJAR fileがOmitされてる。
Issueに掲載されていたドキュメントを確認。
$ cd maven-project
$ mvn wrapper:wrapper -Dtype=bin
...
$ cd ..
type=binで生成する。
mvnw
mvnw.cmd
.mvn/wrapper/maven-wrapper.jar
.mvn/wrapper/maven-wrapper.properties
maven-wrapper.jarが追加され、Wrapperに必要な3つのファイルが更新される。
$ tail -4 maven-project/.mvn/wrapper/maven-wrapper.properties
wrapperVersion=3.3.2
distributionType=bin
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar
distributionTypeがbinになった。
distributionUrlのバージョンが変わった場合は修正。
$ ls -laR maven-project
maven-project:
total 36
drwxr-xr-x 4 spring spring 105 Sep 9 13:15 .
drwxr-xr-x 6 spring spring 4096 Sep 9 13:10 ..
-rw-r--r-- 1 spring spring 395 Sep 9 13:00 .gitignore
-rw-r--r-- 1 spring spring 1063 Sep 9 13:00 HELP.md
drwxr-xr-x 3 spring spring 21 May 21 15:12 .mvn
-rwxr-xr-x 1 spring spring 11172 May 21 15:12 mvnw
-rw-r--r-- 1 spring spring 7903 May 21 15:12 mvnw.cmd
-rw-r--r-- 1 spring spring 1421 Sep 9 13:00 pom.xml
drwxr-xr-x 4 spring spring 30 Sep 9 13:00 src
maven-project/.mvn:
total 0
drwxr-xr-x 3 spring spring 21 May 21 15:12 .
drwxr-xr-x 4 spring spring 105 Sep 9 13:15 ..
drwxr-xr-x 2 spring spring 63 Sep 9 13:15 wrapper
maven-project/.mvn/wrapper:
total 68
drwxr-xr-x 2 spring spring 63 Sep 9 13:15 .
drwxr-xr-x 3 spring spring 21 May 21 15:12 ..
-rw-r--r-- 1 spring spring 63028 May 21 15:12 maven-wrapper.jar
-rw-r--r-- 1 spring spring 1060 Sep 9 13:15 maven-wrapper.properties
...
めでたしめでたし。
Discussion