eclipseにてSpringBootプロジェクトを作成する。
以下の構成になる。
——————————————————————————————————-
.project
<?xml version=”1.0″ encoding=”UTF-8″?>
<projectDescription>
<name>hello-1</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.springframework.ide.eclipse.boot.validation.springbootbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>
——————————————————————————————————-
.classpath
<?xml version=”1.0″ encoding=”UTF-8″?>
<classpath>
<classpathentry kind=”src” output=”target/classes” path=”src/main/java”>
<attributes>
<attribute name=”optional” value=”true”/>
<attribute name=”maven.pomderived” value=”true”/>
</attributes>
</classpathentry>
<classpathentry excluding=”**” kind=”src” output=”target/classes” path=”src/main/resources”>
<attributes>
<attribute name=”maven.pomderived” value=”true”/>
<attribute name=”optional” value=”true”/>
</attributes>
</classpathentry>
<classpathentry kind=”src” output=”target/test-classes” path=”src/test/java”>
<attributes>
<attribute name=”optional” value=”true”/>
<attribute name=”maven.pomderived” value=”true”/>
<attribute name=”test” value=”true”/>
</attributes>
</classpathentry>
<classpathentry excluding=”**” kind=”src” output=”target/test-classes” path=”src/test/resources”>
<attributes>
<attribute name=”maven.pomderived” value=”true”/>
<attribute name=”test” value=”true”/>
<attribute name=”optional” value=”true”/>
</attributes>
</classpathentry>
<classpathentry kind=”con” path=”org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17″>
<attributes>
<attribute name=”maven.pomderived” value=”true”/>
</attributes>
</classpathentry>
<classpathentry kind=”con” path=”org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER”>
<attributes>
<attribute name=”maven.pomderived” value=”true”/>
</attributes>
</classpathentry>
<classpathentry kind=”src” path=”target/generated-sources/annotations”>
<attributes>
<attribute name=”optional” value=”true”/>
</attributes>
</classpathentry>
<classpathentry kind=”src” output=”target/test-classes” path=”target/generated-test-sources/test-annotations”>
<attributes>
<attribute name=”optional” value=”true”/>
<attribute name=”test” value=”true”/>
</attributes>
</classpathentry>
<classpathentry kind=”output” path=”target/classes”/>
</classpath>
——————————————————————————————————-
.factorypath
<factorypath>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/springframework/boot/spring-boot-starter-thymeleaf/3.2.5/spring-boot-starter-thymeleaf-3.2.5.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/springframework/boot/spring-boot-starter/3.2.5/spring-boot-starter-3.2.5.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/springframework/boot/spring-boot-starter-logging/3.2.5/spring-boot-starter-logging-3.2.5.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/ch/qos/logback/logback-classic/1.4.14/logback-classic-1.4.14.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/ch/qos/logback/logback-core/1.4.14/logback-core-1.4.14.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/apache/logging/log4j/log4j-to-slf4j/2.21.1/log4j-to-slf4j-2.21.1.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/apache/logging/log4j/log4j-api/2.21.1/log4j-api-2.21.1.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/slf4j/jul-to-slf4j/2.0.13/jul-to-slf4j-2.0.13.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/jakarta/annotation/jakarta.annotation-api/2.1.1/jakarta.annotation-api-2.1.1.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/yaml/snakeyaml/2.2/snakeyaml-2.2.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/thymeleaf/thymeleaf-spring6/3.1.2.RELEASE/thymeleaf-spring6-3.1.2.RELEASE.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/thymeleaf/thymeleaf/3.1.2.RELEASE/thymeleaf-3.1.2.RELEASE.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/attoparser/attoparser/2.0.7.RELEASE/attoparser-2.0.7.RELEASE.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/unbescape/unbescape/1.1.6.RELEASE/unbescape-1.1.6.RELEASE.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/slf4j/slf4j-api/2.0.13/slf4j-api-2.0.13.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/springframework/boot/spring-boot-starter-web/3.2.5/spring-boot-starter-web-3.2.5.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/springframework/boot/spring-boot-starter-json/3.2.5/spring-boot-starter-json-3.2.5.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/com/fasterxml/jackson/core/jackson-databind/2.15.4/jackson-databind-2.15.4.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/com/fasterxml/jackson/core/jackson-annotations/2.15.4/jackson-annotations-2.15.4.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/com/fasterxml/jackson/core/jackson-core/2.15.4/jackson-core-2.15.4.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.15.4/jackson-datatype-jdk8-2.15.4.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.15.4/jackson-datatype-jsr310-2.15.4.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/com/fasterxml/jackson/module/jackson-module-parameter-names/2.15.4/jackson-module-parameter-names-2.15.4.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/springframework/boot/spring-boot-starter-tomcat/3.2.5/spring-boot-starter-tomcat-3.2.5.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/apache/tomcat/embed/tomcat-embed-core/10.1.20/tomcat-embed-core-10.1.20.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/apache/tomcat/embed/tomcat-embed-el/10.1.20/tomcat-embed-el-10.1.20.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.20/tomcat-embed-websocket-10.1.20.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/springframework/spring-web/6.1.6/spring-web-6.1.6.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/springframework/spring-beans/6.1.6/spring-beans-6.1.6.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/io/micrometer/micrometer-observation/1.12.5/micrometer-observation-1.12.5.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/io/micrometer/micrometer-commons/1.12.5/micrometer-commons-1.12.5.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/springframework/spring-webmvc/6.1.6/spring-webmvc-6.1.6.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/springframework/spring-aop/6.1.6/spring-aop-6.1.6.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/springframework/spring-context/6.1.6/spring-context-6.1.6.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/springframework/spring-expression/6.1.6/spring-expression-6.1.6.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/springframework/boot/spring-boot-devtools/3.2.5/spring-boot-devtools-3.2.5.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/springframework/boot/spring-boot/3.2.5/spring-boot-3.2.5.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/springframework/boot/spring-boot-autoconfigure/3.2.5/spring-boot-autoconfigure-3.2.5.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/projectlombok/lombok/1.18.32/lombok-1.18.32.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/springframework/spring-core/6.1.6/spring-core-6.1.6.jar” enabled=”true” runInBatchMode=”false”/>
<factorypathentry kind=”VARJAR” id=”M2_REPO/org/springframework/spring-jcl/6.1.6/spring-jcl-6.1.6.jar” enabled=”true” runInBatchMode=”false”/>
</factorypath>
——————————————————————————————————-
.gitignore
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
VS Code ###
.vscode/
HELP.md
# Getting Started
### Reference Documentation
For further reference, please consider the following sections:
* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html)
* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/3.2.5/maven-plugin/reference/html/)
* [Create an OCI image](https://docs.spring.io/spring-boot/docs/3.2.5/maven-plugin/reference/html/#build-image)
* [Spring Boot DevTools](https://docs.spring.io/spring-boot/docs/3.2.5/reference/htmlsingle/index.html#using.devtools)
* [Thymeleaf](https://docs.spring.io/spring-boot/docs/3.2.5/reference/htmlsingle/index.html#web.servlet.spring-mvc.template-engines)
* [Spring Web](https://docs.spring.io/spring-boot/docs/3.2.5/reference/htmlsingle/index.html#web)
### Guides
The following guides illustrate how to use some features concretely:
* [Handling Form Submission](https://spring.io/guides/gs/handling-form-submission/)
* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/)
* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/)
* [Building REST services with Spring](https://spring.io/guides/tutorials/rest/)
mvnw
#!/bin/sh
# —————————————————————————-
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# “License”); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# —————————————————————————-
# —————————————————————————-
# Apache Maven Wrapper startup batch script, version 3.2.0
#
# Required ENV vars:
# ——————
# JAVA_HOME – location of a JDK home dir
#
# Optional ENV vars
# —————–
# MAVEN_OPTS – parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC – flag to disable loading of mavenrc files
# —————————————————————————-
if [ -z “$MAVEN_SKIP_RC” ] ; then
if [ -f /usr/local/etc/mavenrc ] ; then
. /usr/local/etc/mavenrc
fi
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f “$HOME/.mavenrc” ] ; then
. “$HOME/.mavenrc”
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case “$(uname)” in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z “$JAVA_HOME” ]; then
if [ -x “/usr/libexec/java_home” ]; then
JAVA_HOME=”$(/usr/libexec/java_home)”; export JAVA_HOME
else
JAVA_HOME=”/Library/Java/Home”; export JAVA_HOME
fi
fi
;;
esac
if [ -z “$JAVA_HOME” ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=$(java-config –jre-home)
fi
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n “$JAVA_HOME” ] &&
JAVA_HOME=$(cygpath –unix “$JAVA_HOME”)
[ -n “$CLASSPATH” ] &&
CLASSPATH=$(cygpath –path –unix “$CLASSPATH”)
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n “$JAVA_HOME” ] && [ -d “$JAVA_HOME” ] &&
JAVA_HOME=”$(cd “$JAVA_HOME” || (echo “cannot cd into $JAVA_HOME.”; exit 1); pwd)”
fi
if [ -z “$JAVA_HOME” ]; then
javaExecutable=”$(which javac)”
if [ -n “$javaExecutable” ] && ! [ “$(expr “\”$javaExecutable\”” : ‘\([^ ]*\)’)” = “no” ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=$(which readlink)
if [ ! “$(expr “$readLink” : ‘\([^ ]*\)’)” = “no” ]; then
if $darwin ; then
javaHome=”$(dirname “\”$javaExecutable\””)”
javaExecutable=”$(cd “\”$javaHome\”” && pwd -P)/javac”
else
javaExecutable=”$(readlink -f “\”$javaExecutable\””)”
fi
javaHome=”$(dirname “\”$javaExecutable\””)”
javaHome=$(expr “$javaHome” : ‘\(.*\)/bin’)
JAVA_HOME=”$javaHome”
export JAVA_HOME
fi
fi
fi
if [ -z “$JAVACMD” ] ; then
if [ -n “$JAVA_HOME” ] ; then
if [ -x “$JAVA_HOME/jre/sh/java” ] ; then
# IBM’s JDK on AIX uses strange locations for the executables
JAVACMD=”$JAVA_HOME/jre/sh/java”
else
JAVACMD=”$JAVA_HOME/bin/java”
fi
else
JAVACMD=”$(\unset -f command 2>/dev/null; \command -v java)”
fi
fi
if [ ! -x “$JAVACMD” ] ; then
echo “Error: JAVA_HOME is not defined correctly.” >&2
echo ” We cannot execute $JAVACMD” >&2
exit 1
fi
if [ -z “$JAVA_HOME” ] ; then
echo “Warning: JAVA_HOME environment variable is not set.”
fi
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z “$1” ]
then
echo “Path not specified to find_maven_basedir”
return 1
fi
basedir=”$1″
wdir=”$1″
while [ “$wdir” != ‘/’ ] ; do
if [ -d “$wdir”/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d “${wdir}” ]; then
wdir=$(cd “$wdir/..” || exit 1; pwd)
fi
# end of workaround
done
printf ‘%s’ “$(cd “$basedir” || exit 1; pwd)”
}
# concatenates all lines of a file
concat_lines() {
if [ -f “$1” ]; then
# Remove \r in case we run on Windows within Git Bash
# and check out the repository with auto CRLF management
# enabled. Otherwise, we may read lines that are delimited with
# \r\n and produce $’-Xarg\r’ rather than -Xarg due to word
# splitting rules.
tr -s ‘\r\n’ ‘ ‘ < “$1”
fi
}
log() {
if [ “$MVNW_VERBOSE” = true ]; then
printf ‘%s\n’ “$1”
fi
}
BASE_DIR=$(find_maven_basedir “$(dirname “$0″)”)
if [ -z “$BASE_DIR” ]; then
exit 1;
fi
MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-“$BASE_DIR”}; export MAVEN_PROJECTBASEDIR
log “$MAVEN_PROJECTBASEDIR”
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
wrapperJarPath=”$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar”
if [ -r “$wrapperJarPath” ]; then
log “Found $wrapperJarPath”
else
log “Couldn’t find $wrapperJarPath, downloading it …”
if [ -n “$MVNW_REPOURL” ]; then
wrapperUrl=”$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar”
else
wrapperUrl=”https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar”
fi
while IFS=”=” read -r key value; do
# Remove ‘\r’ from value to allow usage on windows as IFS does not consider ‘\r’ as a separator ( considers space, tab, new line (‘\n’), and custom ‘=’ )
safeValue=$(echo “$value” | tr -d ‘\r’)
case “$key” in (wrapperUrl) wrapperUrl=”$safeValue”; break ;;
esac
done < “$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties”
log “Downloading from: $wrapperUrl”
if $cygwin; then
wrapperJarPath=$(cygpath –path –windows “$wrapperJarPath”)
fi
if command -v wget > /dev/null; then
log “Found wget … using wget”
[ “$MVNW_VERBOSE” = true ] && QUIET=”” || QUIET=”–quiet”
if [ -z “$MVNW_USERNAME” ] || [ -z “$MVNW_PASSWORD” ]; then
wget $QUIET “$wrapperUrl” -O “$wrapperJarPath” || rm -f “$wrapperJarPath”
else
wget $QUIET –http-user=”$MVNW_USERNAME” –http-password=”$MVNW_PASSWORD” “$wrapperUrl” -O “$wrapperJarPath” || rm -f “$wrapperJarPath”
fi
elif command -v curl > /dev/null; then
log “Found curl … using curl”
[ “$MVNW_VERBOSE” = true ] && QUIET=”” || QUIET=”–silent”
if [ -z “$MVNW_USERNAME” ] || [ -z “$MVNW_PASSWORD” ]; then
curl $QUIET -o “$wrapperJarPath” “$wrapperUrl” -f -L || rm -f “$wrapperJarPath”
else
curl $QUIET –user “$MVNW_USERNAME:$MVNW_PASSWORD” -o “$wrapperJarPath” “$wrapperUrl” -f -L || rm -f “$wrapperJarPath”
fi
else
log “Falling back to using Java to download”
javaSource=”$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java”
javaClass=”$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class”
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaSource=$(cygpath –path –windows “$javaSource”)
javaClass=$(cygpath –path –windows “$javaClass”)
fi
if [ -e “$javaSource” ]; then
if [ ! -e “$javaClass” ]; then
log ” – Compiling MavenWrapperDownloader.java …”
(“$JAVA_HOME/bin/javac” “$javaSource”)
fi
if [ -e “$javaClass” ]; then
log ” – Running MavenWrapperDownloader.java …”
(“$JAVA_HOME/bin/java” -cp .mvn/wrapper MavenWrapperDownloader “$wrapperUrl” “$wrapperJarPath”) || rm -f “$wrapperJarPath”
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
# If specified, validate the SHA-256 sum of the Maven wrapper jar file
wrapperSha256Sum=””
while IFS=”=” read -r key value; do
case “$key” in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;;
esac
done < “$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties”
if [ -n “$wrapperSha256Sum” ]; then
wrapperSha256Result=false
if command -v sha256sum > /dev/null; then
if echo “$wrapperSha256Sum $wrapperJarPath” | sha256sum -c > /dev/null 2>&1; then
wrapperSha256Result=true
fi
elif command -v shasum > /dev/null; then
if echo “$wrapperSha256Sum $wrapperJarPath” | shasum -a 256 -c > /dev/null 2>&1; then
wrapperSha256Result=true
fi
else
echo “Checksum validation was requested but neither ‘sha256sum’ or ‘shasum’ are available.”
echo “Please install either command, or disable validation by removing ‘wrapperSha256Sum’ from your maven-wrapper.properties.”
exit 1
fi
if [ $wrapperSha256Result = false ]; then
echo “Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.” >&2
echo “Investigate or delete $wrapperJarPath to attempt a clean download.” >&2
echo “If you updated your Maven version, you need to update the specified wrapperSha256Sum property.” >&2
exit 1
fi
fi
MAVEN_OPTS=”$(concat_lines “$MAVEN_PROJECTBASEDIR/.mvn/jvm.config”) $MAVEN_OPTS”
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n “$JAVA_HOME” ] &&
JAVA_HOME=$(cygpath –path –windows “$JAVA_HOME”)
[ -n “$CLASSPATH” ] &&
CLASSPATH=$(cygpath –path –windows “$CLASSPATH”)
[ -n “$MAVEN_PROJECTBASEDIR” ] &&
MAVEN_PROJECTBASEDIR=$(cygpath –path –windows “$MAVEN_PROJECTBASEDIR”)
fi
# Provide a “standardized” way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS=”$MAVEN_CONFIG $*”
export MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
# shellcheck disable=SC2086 # safe args
exec “$JAVACMD” \
$MAVEN_OPTS \
$MAVEN_DEBUG_OPTS \
-classpath “$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar” \
“-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}” \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG “$@”
pom.xml
<html xmlns:th=”http://www.thymeleaf.org”><!– ① –>
<head>
<meta charset=”UTF-8″>
<title>Hello</title>
</head>
<body>
Hello, world! こんにちは
<span th:text=”${name}”></span>さん! <!– ② –>
</body>
</html>



コメント