Yansen пре 4 година
комит
785b54e72b

+ 33
- 0
.gitignore Прегледај датотеку

@@ -0,0 +1,33 @@
1
+HELP.md
2
+target/
3
+!.mvn/wrapper/maven-wrapper.jar
4
+!**/src/main/**/target/
5
+!**/src/test/**/target/
6
+
7
+### STS ###
8
+.apt_generated
9
+.classpath
10
+.factorypath
11
+.project
12
+.settings
13
+.springBeans
14
+.sts4-cache
15
+
16
+### IntelliJ IDEA ###
17
+.idea
18
+*.iws
19
+*.iml
20
+*.ipr
21
+
22
+### NetBeans ###
23
+/nbproject/private/
24
+/nbbuild/
25
+/dist/
26
+/nbdist/
27
+/.nb-gradle/
28
+build/
29
+!**/src/main/**/build/
30
+!**/src/test/**/build/
31
+
32
+### VS Code ###
33
+.vscode/

+ 117
- 0
.mvn/wrapper/MavenWrapperDownloader.java Прегледај датотеку

@@ -0,0 +1,117 @@
1
+/*
2
+ * Copyright 2007-present the original author or authors.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ *      https://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+import java.net.*;
17
+import java.io.*;
18
+import java.nio.channels.*;
19
+import java.util.Properties;
20
+
21
+public class MavenWrapperDownloader {
22
+
23
+    private static final String WRAPPER_VERSION = "0.5.6";
24
+    /**
25
+     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
26
+     */
27
+    private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
28
+        + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
29
+
30
+    /**
31
+     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
32
+     * use instead of the default one.
33
+     */
34
+    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
35
+            ".mvn/wrapper/maven-wrapper.properties";
36
+
37
+    /**
38
+     * Path where the maven-wrapper.jar will be saved to.
39
+     */
40
+    private static final String MAVEN_WRAPPER_JAR_PATH =
41
+            ".mvn/wrapper/maven-wrapper.jar";
42
+
43
+    /**
44
+     * Name of the property which should be used to override the default download url for the wrapper.
45
+     */
46
+    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
47
+
48
+    public static void main(String args[]) {
49
+        System.out.println("- Downloader started");
50
+        File baseDirectory = new File(args[0]);
51
+        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
52
+
53
+        // If the maven-wrapper.properties exists, read it and check if it contains a custom
54
+        // wrapperUrl parameter.
55
+        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
56
+        String url = DEFAULT_DOWNLOAD_URL;
57
+        if(mavenWrapperPropertyFile.exists()) {
58
+            FileInputStream mavenWrapperPropertyFileInputStream = null;
59
+            try {
60
+                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
61
+                Properties mavenWrapperProperties = new Properties();
62
+                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
63
+                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
64
+            } catch (IOException e) {
65
+                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
66
+            } finally {
67
+                try {
68
+                    if(mavenWrapperPropertyFileInputStream != null) {
69
+                        mavenWrapperPropertyFileInputStream.close();
70
+                    }
71
+                } catch (IOException e) {
72
+                    // Ignore ...
73
+                }
74
+            }
75
+        }
76
+        System.out.println("- Downloading from: " + url);
77
+
78
+        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
79
+        if(!outputFile.getParentFile().exists()) {
80
+            if(!outputFile.getParentFile().mkdirs()) {
81
+                System.out.println(
82
+                        "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
83
+            }
84
+        }
85
+        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
86
+        try {
87
+            downloadFileFromURL(url, outputFile);
88
+            System.out.println("Done");
89
+            System.exit(0);
90
+        } catch (Throwable e) {
91
+            System.out.println("- Error downloading");
92
+            e.printStackTrace();
93
+            System.exit(1);
94
+        }
95
+    }
96
+
97
+    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
98
+        if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
99
+            String username = System.getenv("MVNW_USERNAME");
100
+            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
101
+            Authenticator.setDefault(new Authenticator() {
102
+                @Override
103
+                protected PasswordAuthentication getPasswordAuthentication() {
104
+                    return new PasswordAuthentication(username, password);
105
+                }
106
+            });
107
+        }
108
+        URL website = new URL(urlString);
109
+        ReadableByteChannel rbc;
110
+        rbc = Channels.newChannel(website.openStream());
111
+        FileOutputStream fos = new FileOutputStream(destination);
112
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
113
+        fos.close();
114
+        rbc.close();
115
+    }
116
+
117
+}

BIN
.mvn/wrapper/maven-wrapper.jar Прегледај датотеку


+ 2
- 0
.mvn/wrapper/maven-wrapper.properties Прегледај датотеку

@@ -0,0 +1,2 @@
1
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
2
+wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar

+ 310
- 0
mvnw Прегледај датотеку

@@ -0,0 +1,310 @@
1
+#!/bin/sh
2
+# ----------------------------------------------------------------------------
3
+# Licensed to the Apache Software Foundation (ASF) under one
4
+# or more contributor license agreements.  See the NOTICE file
5
+# distributed with this work for additional information
6
+# regarding copyright ownership.  The ASF licenses this file
7
+# to you under the Apache License, Version 2.0 (the
8
+# "License"); you may not use this file except in compliance
9
+# with the License.  You may obtain a copy of the License at
10
+#
11
+#    https://www.apache.org/licenses/LICENSE-2.0
12
+#
13
+# Unless required by applicable law or agreed to in writing,
14
+# software distributed under the License is distributed on an
15
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+# KIND, either express or implied.  See the License for the
17
+# specific language governing permissions and limitations
18
+# under the License.
19
+# ----------------------------------------------------------------------------
20
+
21
+# ----------------------------------------------------------------------------
22
+# Maven Start Up Batch script
23
+#
24
+# Required ENV vars:
25
+# ------------------
26
+#   JAVA_HOME - location of a JDK home dir
27
+#
28
+# Optional ENV vars
29
+# -----------------
30
+#   M2_HOME - location of maven2's installed home dir
31
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
32
+#     e.g. to debug Maven itself, use
33
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
34
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
35
+# ----------------------------------------------------------------------------
36
+
37
+if [ -z "$MAVEN_SKIP_RC" ] ; then
38
+
39
+  if [ -f /etc/mavenrc ] ; then
40
+    . /etc/mavenrc
41
+  fi
42
+
43
+  if [ -f "$HOME/.mavenrc" ] ; then
44
+    . "$HOME/.mavenrc"
45
+  fi
46
+
47
+fi
48
+
49
+# OS specific support.  $var _must_ be set to either true or false.
50
+cygwin=false;
51
+darwin=false;
52
+mingw=false
53
+case "`uname`" in
54
+  CYGWIN*) cygwin=true ;;
55
+  MINGW*) mingw=true;;
56
+  Darwin*) darwin=true
57
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
58
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
59
+    if [ -z "$JAVA_HOME" ]; then
60
+      if [ -x "/usr/libexec/java_home" ]; then
61
+        export JAVA_HOME="`/usr/libexec/java_home`"
62
+      else
63
+        export JAVA_HOME="/Library/Java/Home"
64
+      fi
65
+    fi
66
+    ;;
67
+esac
68
+
69
+if [ -z "$JAVA_HOME" ] ; then
70
+  if [ -r /etc/gentoo-release ] ; then
71
+    JAVA_HOME=`java-config --jre-home`
72
+  fi
73
+fi
74
+
75
+if [ -z "$M2_HOME" ] ; then
76
+  ## resolve links - $0 may be a link to maven's home
77
+  PRG="$0"
78
+
79
+  # need this for relative symlinks
80
+  while [ -h "$PRG" ] ; do
81
+    ls=`ls -ld "$PRG"`
82
+    link=`expr "$ls" : '.*-> \(.*\)$'`
83
+    if expr "$link" : '/.*' > /dev/null; then
84
+      PRG="$link"
85
+    else
86
+      PRG="`dirname "$PRG"`/$link"
87
+    fi
88
+  done
89
+
90
+  saveddir=`pwd`
91
+
92
+  M2_HOME=`dirname "$PRG"`/..
93
+
94
+  # make it fully qualified
95
+  M2_HOME=`cd "$M2_HOME" && pwd`
96
+
97
+  cd "$saveddir"
98
+  # echo Using m2 at $M2_HOME
99
+fi
100
+
101
+# For Cygwin, ensure paths are in UNIX format before anything is touched
102
+if $cygwin ; then
103
+  [ -n "$M2_HOME" ] &&
104
+    M2_HOME=`cygpath --unix "$M2_HOME"`
105
+  [ -n "$JAVA_HOME" ] &&
106
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
107
+  [ -n "$CLASSPATH" ] &&
108
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
109
+fi
110
+
111
+# For Mingw, ensure paths are in UNIX format before anything is touched
112
+if $mingw ; then
113
+  [ -n "$M2_HOME" ] &&
114
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
115
+  [ -n "$JAVA_HOME" ] &&
116
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
117
+fi
118
+
119
+if [ -z "$JAVA_HOME" ]; then
120
+  javaExecutable="`which javac`"
121
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
122
+    # readlink(1) is not available as standard on Solaris 10.
123
+    readLink=`which readlink`
124
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
125
+      if $darwin ; then
126
+        javaHome="`dirname \"$javaExecutable\"`"
127
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
128
+      else
129
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
130
+      fi
131
+      javaHome="`dirname \"$javaExecutable\"`"
132
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
133
+      JAVA_HOME="$javaHome"
134
+      export JAVA_HOME
135
+    fi
136
+  fi
137
+fi
138
+
139
+if [ -z "$JAVACMD" ] ; then
140
+  if [ -n "$JAVA_HOME"  ] ; then
141
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
142
+      # IBM's JDK on AIX uses strange locations for the executables
143
+      JAVACMD="$JAVA_HOME/jre/sh/java"
144
+    else
145
+      JAVACMD="$JAVA_HOME/bin/java"
146
+    fi
147
+  else
148
+    JAVACMD="`which java`"
149
+  fi
150
+fi
151
+
152
+if [ ! -x "$JAVACMD" ] ; then
153
+  echo "Error: JAVA_HOME is not defined correctly." >&2
154
+  echo "  We cannot execute $JAVACMD" >&2
155
+  exit 1
156
+fi
157
+
158
+if [ -z "$JAVA_HOME" ] ; then
159
+  echo "Warning: JAVA_HOME environment variable is not set."
160
+fi
161
+
162
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
163
+
164
+# traverses directory structure from process work directory to filesystem root
165
+# first directory with .mvn subdirectory is considered project base directory
166
+find_maven_basedir() {
167
+
168
+  if [ -z "$1" ]
169
+  then
170
+    echo "Path not specified to find_maven_basedir"
171
+    return 1
172
+  fi
173
+
174
+  basedir="$1"
175
+  wdir="$1"
176
+  while [ "$wdir" != '/' ] ; do
177
+    if [ -d "$wdir"/.mvn ] ; then
178
+      basedir=$wdir
179
+      break
180
+    fi
181
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
182
+    if [ -d "${wdir}" ]; then
183
+      wdir=`cd "$wdir/.."; pwd`
184
+    fi
185
+    # end of workaround
186
+  done
187
+  echo "${basedir}"
188
+}
189
+
190
+# concatenates all lines of a file
191
+concat_lines() {
192
+  if [ -f "$1" ]; then
193
+    echo "$(tr -s '\n' ' ' < "$1")"
194
+  fi
195
+}
196
+
197
+BASE_DIR=`find_maven_basedir "$(pwd)"`
198
+if [ -z "$BASE_DIR" ]; then
199
+  exit 1;
200
+fi
201
+
202
+##########################################################################################
203
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
204
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
205
+##########################################################################################
206
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
207
+    if [ "$MVNW_VERBOSE" = true ]; then
208
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
209
+    fi
210
+else
211
+    if [ "$MVNW_VERBOSE" = true ]; then
212
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
213
+    fi
214
+    if [ -n "$MVNW_REPOURL" ]; then
215
+      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
216
+    else
217
+      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
218
+    fi
219
+    while IFS="=" read key value; do
220
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
221
+      esac
222
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
223
+    if [ "$MVNW_VERBOSE" = true ]; then
224
+      echo "Downloading from: $jarUrl"
225
+    fi
226
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
227
+    if $cygwin; then
228
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
229
+    fi
230
+
231
+    if command -v wget > /dev/null; then
232
+        if [ "$MVNW_VERBOSE" = true ]; then
233
+          echo "Found wget ... using wget"
234
+        fi
235
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
236
+            wget "$jarUrl" -O "$wrapperJarPath"
237
+        else
238
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
239
+        fi
240
+    elif command -v curl > /dev/null; then
241
+        if [ "$MVNW_VERBOSE" = true ]; then
242
+          echo "Found curl ... using curl"
243
+        fi
244
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
245
+            curl -o "$wrapperJarPath" "$jarUrl" -f
246
+        else
247
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
248
+        fi
249
+
250
+    else
251
+        if [ "$MVNW_VERBOSE" = true ]; then
252
+          echo "Falling back to using Java to download"
253
+        fi
254
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
255
+        # For Cygwin, switch paths to Windows format before running javac
256
+        if $cygwin; then
257
+          javaClass=`cygpath --path --windows "$javaClass"`
258
+        fi
259
+        if [ -e "$javaClass" ]; then
260
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
261
+                if [ "$MVNW_VERBOSE" = true ]; then
262
+                  echo " - Compiling MavenWrapperDownloader.java ..."
263
+                fi
264
+                # Compiling the Java class
265
+                ("$JAVA_HOME/bin/javac" "$javaClass")
266
+            fi
267
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
268
+                # Running the downloader
269
+                if [ "$MVNW_VERBOSE" = true ]; then
270
+                  echo " - Running MavenWrapperDownloader.java ..."
271
+                fi
272
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
273
+            fi
274
+        fi
275
+    fi
276
+fi
277
+##########################################################################################
278
+# End of extension
279
+##########################################################################################
280
+
281
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
282
+if [ "$MVNW_VERBOSE" = true ]; then
283
+  echo $MAVEN_PROJECTBASEDIR
284
+fi
285
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
286
+
287
+# For Cygwin, switch paths to Windows format before running java
288
+if $cygwin; then
289
+  [ -n "$M2_HOME" ] &&
290
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
291
+  [ -n "$JAVA_HOME" ] &&
292
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
293
+  [ -n "$CLASSPATH" ] &&
294
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
295
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
296
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
297
+fi
298
+
299
+# Provide a "standardized" way to retrieve the CLI args that will
300
+# work with both Windows and non-Windows executions.
301
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
302
+export MAVEN_CMD_LINE_ARGS
303
+
304
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
305
+
306
+exec "$JAVACMD" \
307
+  $MAVEN_OPTS \
308
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
309
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
310
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

+ 182
- 0
mvnw.cmd Прегледај датотеку

@@ -0,0 +1,182 @@
1
+@REM ----------------------------------------------------------------------------
2
+@REM Licensed to the Apache Software Foundation (ASF) under one
3
+@REM or more contributor license agreements.  See the NOTICE file
4
+@REM distributed with this work for additional information
5
+@REM regarding copyright ownership.  The ASF licenses this file
6
+@REM to you under the Apache License, Version 2.0 (the
7
+@REM "License"); you may not use this file except in compliance
8
+@REM with the License.  You may obtain a copy of the License at
9
+@REM
10
+@REM    https://www.apache.org/licenses/LICENSE-2.0
11
+@REM
12
+@REM Unless required by applicable law or agreed to in writing,
13
+@REM software distributed under the License is distributed on an
14
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+@REM KIND, either express or implied.  See the License for the
16
+@REM specific language governing permissions and limitations
17
+@REM under the License.
18
+@REM ----------------------------------------------------------------------------
19
+
20
+@REM ----------------------------------------------------------------------------
21
+@REM Maven Start Up Batch script
22
+@REM
23
+@REM Required ENV vars:
24
+@REM JAVA_HOME - location of a JDK home dir
25
+@REM
26
+@REM Optional ENV vars
27
+@REM M2_HOME - location of maven2's installed home dir
28
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
29
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
30
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
31
+@REM     e.g. to debug Maven itself, use
32
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
33
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
34
+@REM ----------------------------------------------------------------------------
35
+
36
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
37
+@echo off
38
+@REM set title of command window
39
+title %0
40
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
41
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
42
+
43
+@REM set %HOME% to equivalent of $HOME
44
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
45
+
46
+@REM Execute a user defined script before this one
47
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
48
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
49
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
50
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
51
+:skipRcPre
52
+
53
+@setlocal
54
+
55
+set ERROR_CODE=0
56
+
57
+@REM To isolate internal variables from possible post scripts, we use another setlocal
58
+@setlocal
59
+
60
+@REM ==== START VALIDATION ====
61
+if not "%JAVA_HOME%" == "" goto OkJHome
62
+
63
+echo.
64
+echo Error: JAVA_HOME not found in your environment. >&2
65
+echo Please set the JAVA_HOME variable in your environment to match the >&2
66
+echo location of your Java installation. >&2
67
+echo.
68
+goto error
69
+
70
+:OkJHome
71
+if exist "%JAVA_HOME%\bin\java.exe" goto init
72
+
73
+echo.
74
+echo Error: JAVA_HOME is set to an invalid directory. >&2
75
+echo JAVA_HOME = "%JAVA_HOME%" >&2
76
+echo Please set the JAVA_HOME variable in your environment to match the >&2
77
+echo location of your Java installation. >&2
78
+echo.
79
+goto error
80
+
81
+@REM ==== END VALIDATION ====
82
+
83
+:init
84
+
85
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
86
+@REM Fallback to current working directory if not found.
87
+
88
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
89
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
90
+
91
+set EXEC_DIR=%CD%
92
+set WDIR=%EXEC_DIR%
93
+:findBaseDir
94
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
95
+cd ..
96
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
97
+set WDIR=%CD%
98
+goto findBaseDir
99
+
100
+:baseDirFound
101
+set MAVEN_PROJECTBASEDIR=%WDIR%
102
+cd "%EXEC_DIR%"
103
+goto endDetectBaseDir
104
+
105
+:baseDirNotFound
106
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
107
+cd "%EXEC_DIR%"
108
+
109
+:endDetectBaseDir
110
+
111
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
112
+
113
+@setlocal EnableExtensions EnableDelayedExpansion
114
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
115
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
116
+
117
+:endReadAdditionalConfig
118
+
119
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
120
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
121
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
122
+
123
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
124
+
125
+FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
126
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
127
+)
128
+
129
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
130
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
131
+if exist %WRAPPER_JAR% (
132
+    if "%MVNW_VERBOSE%" == "true" (
133
+        echo Found %WRAPPER_JAR%
134
+    )
135
+) else (
136
+    if not "%MVNW_REPOURL%" == "" (
137
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
138
+    )
139
+    if "%MVNW_VERBOSE%" == "true" (
140
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
141
+        echo Downloading from: %DOWNLOAD_URL%
142
+    )
143
+
144
+    powershell -Command "&{"^
145
+		"$webclient = new-object System.Net.WebClient;"^
146
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
147
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
148
+		"}"^
149
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
150
+		"}"
151
+    if "%MVNW_VERBOSE%" == "true" (
152
+        echo Finished downloading %WRAPPER_JAR%
153
+    )
154
+)
155
+@REM End of extension
156
+
157
+@REM Provide a "standardized" way to retrieve the CLI args that will
158
+@REM work with both Windows and non-Windows executions.
159
+set MAVEN_CMD_LINE_ARGS=%*
160
+
161
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
162
+if ERRORLEVEL 1 goto error
163
+goto end
164
+
165
+:error
166
+set ERROR_CODE=1
167
+
168
+:end
169
+@endlocal & set ERROR_CODE=%ERROR_CODE%
170
+
171
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
172
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
173
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
174
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
175
+:skipRcPost
176
+
177
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
178
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
179
+
180
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
181
+
182
+exit /B %ERROR_CODE%

+ 129
- 0
pom.xml Прегледај датотеку

@@ -0,0 +1,129 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4
+	<modelVersion>4.0.0</modelVersion>
5
+	<parent>
6
+		<groupId>org.springframework.boot</groupId>
7
+		<artifactId>spring-boot-starter-parent</artifactId>
8
+		<version>2.3.2.RELEASE</version>
9
+		<relativePath/> <!-- lookup parent from repository -->
10
+	</parent>
11
+	<groupId>com.yunzhi</groupId>
12
+	<artifactId>liyuanhui</artifactId>
13
+	<version>0.0.1-SNAPSHOT</version>
14
+	<name>liyuanhui</name>
15
+	<description>Demo project for Spring Boot</description>
16
+
17
+	<properties>
18
+		<java.version>1.8</java.version>
19
+	</properties>
20
+
21
+	<dependencies>
22
+		<dependency>
23
+			<groupId>org.springframework.boot</groupId>
24
+			<artifactId>spring-boot-starter-web</artifactId>
25
+		</dependency>
26
+
27
+		<dependency>
28
+			<groupId>mysql</groupId>
29
+			<artifactId>mysql-connector-java</artifactId>
30
+			<scope>runtime</scope>
31
+		</dependency>
32
+
33
+		<dependency>
34
+			<groupId>com.baomidou</groupId>
35
+			<artifactId>mybatis-plus-boot-starter</artifactId>
36
+			<version>3.1.1</version>
37
+		</dependency>
38
+		<dependency>
39
+			<groupId>com.alibaba</groupId>
40
+			<artifactId>fastjson</artifactId>
41
+			<version>1.2.56</version>
42
+		</dependency>
43
+		<dependency>
44
+			<groupId>io.jsonwebtoken</groupId>
45
+			<artifactId>jjwt-api</artifactId>
46
+			<version>0.10.5</version>
47
+		</dependency>
48
+		<dependency>
49
+			<groupId>io.jsonwebtoken</groupId>
50
+			<artifactId>jjwt-impl</artifactId>
51
+			<version>0.10.5</version>
52
+			<scope>runtime</scope>
53
+		</dependency>
54
+		<dependency>
55
+			<groupId>io.jsonwebtoken</groupId>
56
+			<artifactId>jjwt-jackson</artifactId>
57
+			<version>0.10.5</version>
58
+			<scope>runtime</scope>
59
+		</dependency>
60
+		<dependency>
61
+			<groupId>com.aliyun.oss</groupId>
62
+			<artifactId>aliyun-sdk-oss</artifactId>
63
+			<version>2.8.3</version>
64
+		</dependency>
65
+		<dependency>
66
+			<groupId>com.github.binarywang</groupId>
67
+			<artifactId>weixin-java-miniapp</artifactId>
68
+			<version>3.8.0</version>
69
+		</dependency>
70
+		<dependency>
71
+			<groupId>org.projectlombok</groupId>
72
+			<artifactId>lombok</artifactId>
73
+			<optional>true</optional>
74
+		</dependency>
75
+
76
+		<dependency>
77
+			<groupId>org.springframework.boot</groupId>
78
+			<artifactId>spring-boot-starter-test</artifactId>
79
+			<scope>test</scope>
80
+			<exclusions>
81
+				<exclusion>
82
+					<groupId>org.junit.vintage</groupId>
83
+					<artifactId>junit-vintage-engine</artifactId>
84
+				</exclusion>
85
+			</exclusions>
86
+		</dependency>
87
+	</dependencies>
88
+
89
+	<profiles>
90
+		<profile>
91
+			<id>dev</id>
92
+			<properties>
93
+				<profileActive>dev</profileActive>
94
+			</properties>
95
+			<activation>
96
+				<activeByDefault>true</activeByDefault>
97
+			</activation>
98
+		</profile>
99
+		<profile>
100
+			<id>prod</id>
101
+			<properties>
102
+				<profileActive>prod</profileActive>
103
+			</properties>
104
+			<activation>
105
+				<activeByDefault>false</activeByDefault>
106
+			</activation>
107
+		</profile>
108
+	</profiles>
109
+
110
+	<build>
111
+		<plugins>
112
+			<plugin>
113
+				<groupId>org.springframework.boot</groupId>
114
+				<artifactId>spring-boot-maven-plugin</artifactId>
115
+			</plugin>
116
+		</plugins>
117
+		<resources>
118
+			<resource>
119
+				<directory>src/main/resources</directory>
120
+				<filtering>true</filtering>
121
+				<includes>
122
+					<include>application.yml</include>
123
+					<include>application-${profileActive}.yml</include>
124
+				</includes>
125
+			</resource>
126
+		</resources>
127
+	</build>
128
+
129
+</project>

+ 13
- 0
src/main/java/com/yunzhi/liyuanhui/LiyuanhuiApplication.java Прегледај датотеку

@@ -0,0 +1,13 @@
1
+package com.yunzhi.liyuanhui;
2
+
3
+import org.springframework.boot.SpringApplication;
4
+import org.springframework.boot.autoconfigure.SpringBootApplication;
5
+
6
+@SpringBootApplication
7
+public class LiyuanhuiApplication {
8
+
9
+	public static void main(String[] args) {
10
+		SpringApplication.run(LiyuanhuiApplication.class, args);
11
+	}
12
+
13
+}

+ 93
- 0
src/main/java/com/yunzhi/liyuanhui/common/JWTUtils.java Прегледај датотеку

@@ -0,0 +1,93 @@
1
+package com.yunzhi.liyuanhui.common;
2
+
3
+import io.jsonwebtoken.Jwts;
4
+import io.jsonwebtoken.security.Keys;
5
+
6
+import javax.servlet.http.HttpServletRequest;
7
+import java.security.Key;
8
+import java.util.Calendar;
9
+import java.util.Date;
10
+import java.util.Map;
11
+
12
+/**
13
+ * JWTUtils
14
+ * jwt 辅助类
15
+ * https://github.com/jwtk/jjwt
16
+ */
17
+public class JWTUtils {
18
+    // 直接定义常量是不安全的
19
+    public final static Key key = Keys.hmacShaKeyFor("yansenisahero,2019-5-17 16:18:14".getBytes());
20
+
21
+    public final static String HeaderName = "x-authorization";
22
+    
23
+    /**
24
+     * getSubject 获取 jwt subject
25
+     * @param request
26
+     * @return
27
+     */
28
+    public static String getSubject(HttpServletRequest request) {
29
+        String jws = getToken(request);
30
+        if (null == jws || "".equals(jws.trim())) return null;
31
+
32
+        try {
33
+            return Jwts.parser().setSigningKey(key).parseClaimsJws(jws.trim()).getBody().getSubject();
34
+        } catch (Exception e) {
35
+            e.printStackTrace();
36
+        }
37
+
38
+        return null;
39
+    }
40
+    
41
+    /**
42
+     * getSubject 获取 jwt subject
43
+     * @param request
44
+     * @return
45
+     */
46
+    public static Map getUserIdAndOrgId(HttpServletRequest request) {
47
+        String jws = getToken(request);
48
+        if (null == jws || "".equals(jws.trim())) return null;
49
+        
50
+        try {
51
+            return Jwts.parser().setSigningKey(key).parseClaimsJws(jws.trim()).getBody();
52
+        } catch (Exception e) {
53
+            e.printStackTrace();
54
+        }
55
+        
56
+        return null;
57
+    }
58
+    
59
+    /**
60
+     * getSubject 获取 jwt subject
61
+     * @param request
62
+     * @return
63
+     */
64
+    public static String getToken(HttpServletRequest request) {
65
+        return request.getHeader(HeaderName);
66
+    }
67
+
68
+    /**
69
+     * newToken 生成新的 token
70
+     * @param subject
71
+     * @return
72
+     */
73
+    public static String newToken(String subject) {
74
+        // 有效期 7 天
75
+        Calendar calendar = Calendar.getInstance();
76
+        calendar.setTime(new Date());
77
+        calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)+7);
78
+        return Jwts.builder().setSubject(subject).setExpiration(calendar.getTime()).signWith(key).compact();
79
+    }
80
+    
81
+    /**
82
+     * newToken 生成新的 token
83
+     * @param subject
84
+     * @return
85
+     */
86
+    public static String newTokenByMap(Map subject) {
87
+        // 有效期 30 分钟
88
+        Calendar calendar = Calendar.getInstance();
89
+        calendar.add(Calendar.MINUTE, 30);
90
+
91
+        return Jwts.builder().setClaims(subject).setExpiration(calendar.getTime()).signWith(key).compact();
92
+    }
93
+}

+ 108
- 0
src/main/java/com/yunzhi/liyuanhui/common/StringUtils.java Прегледај датотеку

@@ -0,0 +1,108 @@
1
+package com.yunzhi.liyuanhui.common;
2
+
3
+import java.io.UnsupportedEncodingException;
4
+import java.net.URLEncoder;
5
+import java.util.Random;
6
+import java.util.regex.Matcher;
7
+import java.util.regex.Pattern;
8
+
9
+public class StringUtils {
10
+    private static Pattern humpPattern = Pattern.compile("[A-Z]");
11
+
12
+    public static boolean isEmpty(String str) {
13
+        return null == str || "".equals(str.trim()) || "null".equals(str) || "undefined".equals(str);
14
+    }
15
+
16
+    public static String trim(String src, String...st) {
17
+        if (null == src) return src;
18
+        if (null == st || st.length == 0) return src.trim();
19
+
20
+        String start = st[0];
21
+        if (!src.startsWith(start)) {
22
+            return src;
23
+        }
24
+
25
+        return src.substring(start.length());
26
+    }
27
+
28
+    public static String ifNull(String src, String defaultVal) {
29
+        return isEmpty(src) ? defaultVal : src;
30
+    }
31
+
32
+    public static String random(int length) {
33
+        String str="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
34
+        Random random = new Random();
35
+        StringBuffer sb = new StringBuffer();
36
+        for(int i=0;i<length;i++){
37
+            int number=random.nextInt(62);
38
+            sb.append(str.charAt(number));
39
+        }
40
+        return sb.toString();
41
+    }
42
+
43
+    public static String urlEncode(String str) {
44
+        try {
45
+            return URLEncoder.encode(str, "UTF-8");
46
+        } catch (UnsupportedEncodingException e) {
47
+            e.printStackTrace();
48
+            return str;
49
+        }
50
+    }
51
+
52
+    public static String humpToLine(String str) {
53
+        if (null == str || "".equals(str)) return "";
54
+
55
+        Matcher matcher = humpPattern.matcher(str);
56
+        StringBuffer sb = new StringBuffer();
57
+        while (matcher.find()) {
58
+            matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
59
+        }
60
+        matcher.appendTail(sb);
61
+        return sb.toString();
62
+    }
63
+
64
+    public static String strToUnicode(String str) {
65
+        char[] chars = str.toCharArray();
66
+        String returnStr = "";
67
+        for (int i = 0; i < chars.length; i++) {
68
+            returnStr += "\\u" + Integer.toString(chars[i], 16);
69
+        }
70
+        return returnStr;
71
+    }
72
+
73
+    public static String repeat(String src, int len) {
74
+        if (null == src) {
75
+            return null;
76
+        }
77
+
78
+        if (len <= 0) {
79
+            return src;
80
+        }
81
+
82
+        String res = "";
83
+        for (int i = 0; i < len; i ++) {
84
+            res += src;
85
+        }
86
+
87
+        return res;
88
+    }
89
+
90
+    public static String lpad(String src, String padStr, int len) {
91
+        if (null == src) {
92
+            return null;
93
+        }
94
+
95
+        if (len <= 0 || src.length() >= len) {
96
+            return src;
97
+        }
98
+
99
+        if (null == padStr) {
100
+            padStr = "";
101
+        }
102
+
103
+        int padLen = len - src.length();
104
+        String prefix = repeat(padStr, padLen);
105
+        prefix = prefix.substring(0, padLen);
106
+        return prefix + src;
107
+    }
108
+}

+ 36
- 0
src/main/java/com/yunzhi/liyuanhui/config/BaseConfig.java Прегледај датотеку

@@ -0,0 +1,36 @@
1
+package com.yunzhi.liyuanhui.config;
2
+
3
+import com.yunzhi.liyuanhui.interceptor.PermissionInterceptor;
4
+import lombok.Data;
5
+import org.springframework.beans.factory.annotation.Autowired;
6
+import org.springframework.context.annotation.Configuration;
7
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
8
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
9
+
10
+import javax.annotation.PostConstruct;
11
+import javax.annotation.Resource;
12
+
13
+@Data
14
+@Configuration
15
+public class BaseConfig implements WebMvcConfigurer {
16
+
17
+    @Resource
18
+    private PermissionInterceptor permissionInterceptor;
19
+
20
+    @Autowired
21
+    private InterceptorConfig interceptorConfig;
22
+
23
+    @PostConstruct
24
+    public void init() {
25
+    }
26
+
27
+    @Override
28
+    public void addInterceptors(InterceptorRegistry registry) {
29
+        // 自定义拦截器,添加拦截路径和排除拦截路径
30
+        if (interceptorConfig.getPermission().isEnable()) {
31
+            registry.addInterceptor(permissionInterceptor)
32
+                    .addPathPatterns(interceptorConfig.getPermission().getIncludePaths())
33
+                    .excludePathPatterns(interceptorConfig.getPermission().getExcludePaths());
34
+        }
35
+    }
36
+}

+ 34
- 0
src/main/java/com/yunzhi/liyuanhui/config/InterceptorConfig.java Прегледај датотеку

@@ -0,0 +1,34 @@
1
+package com.yunzhi.liyuanhui.config;
2
+
3
+import lombok.Data;
4
+import org.springframework.boot.context.properties.ConfigurationProperties;
5
+import org.springframework.boot.context.properties.NestedConfigurationProperty;
6
+import org.springframework.stereotype.Component;
7
+
8
+@Data
9
+@Component
10
+@ConfigurationProperties(prefix = "interceptor")
11
+public class InterceptorConfig {
12
+
13
+    @NestedConfigurationProperty
14
+    private Config permission = new Config();
15
+
16
+    @Data
17
+    public static class Config {
18
+
19
+        /**
20
+         * 是否启用
21
+         */
22
+        private boolean enable;
23
+
24
+        /**
25
+         * 包含的路径
26
+         */
27
+        private String[] includePaths = new String[]{};
28
+
29
+        /**
30
+         * 排除路径
31
+         */
32
+        private String[] excludePaths = new String[]{};
33
+    }
34
+}

+ 12
- 0
src/main/java/com/yunzhi/liyuanhui/interceptor/PermissionInterceptor.java Прегледај датотеку

@@ -0,0 +1,12 @@
1
+package com.yunzhi.liyuanhui.interceptor;
2
+
3
+import lombok.extern.slf4j.Slf4j;
4
+import org.springframework.stereotype.Component;
5
+import org.springframework.web.servlet.HandlerInterceptor;
6
+
7
+
8
+@Slf4j
9
+@Component
10
+public class PermissionInterceptor implements HandlerInterceptor {
11
+
12
+}

+ 6
- 0
src/main/resources/application-dev.yml Прегледај датотеку

@@ -0,0 +1,6 @@
1
+###
2
+spring:
3
+  datasource:
4
+    url: jdbc:mysql://rm-uf6z3z6jq11x653d77o.mysql.rds.aliyuncs.com:3306/liyuanhui?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
5
+    username: liyuanhui
6
+    password: abcd@123456

+ 6
- 0
src/main/resources/application-prod.yml Прегледај датотеку

@@ -0,0 +1,6 @@
1
+###
2
+spring:
3
+  datasource:
4
+    url: jdbc:mysql://rm-uf6z3z6jq11x653d77o.mysql.rds.aliyuncs.com:3306/liyuanhui?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
5
+    username: liyuanhui
6
+    password: abcd@123456

+ 46
- 0
src/main/resources/application.yml Прегледај датотеку

@@ -0,0 +1,46 @@
1
+###
2
+server:
3
+  port: 8080
4
+  servlet:
5
+    context-path: /api
6
+
7
+###
8
+interceptor:
9
+  permission:
10
+    enable: false
11
+    include-paths: /**
12
+    exclude-paths: /login
13
+
14
+###
15
+mybatis-plus:
16
+  configuration:
17
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
18
+    call-setters-on-nulls: true
19
+  mapper-locations: classpath:mapper/**/*.xml
20
+
21
+###
22
+aliyun:
23
+  accessKeyId: LTAI4FdMQNh1xUoiqqbKJ15J
24
+  accessKeySecret: F7vmuXBu8IrhouQYYhFMLRhIRivIzb
25
+  oss:
26
+    endpoint: oss-cn-shanghai.aliyuncs.com
27
+    bucketName: njcj
28
+    bucketURL: https://njcj.oss-cn-shanghai.aliyuncs.com
29
+
30
+###
31
+wx:
32
+  miniapp:
33
+    appid: wxd6f47a9bb3052175
34
+    secret: 28f33b6bbc0f778c11a0bb234a7d6d4e
35
+    token:
36
+    aesKey:
37
+    msgDataFormat: JSON
38
+
39
+###
40
+spring:
41
+  application:
42
+    name: liyuanhui
43
+  profiles:
44
+    active: @profileActive@
45
+
46
+

+ 13
- 0
src/test/java/com/yunzhi/liyuanhui/LiyuanhuiApplicationTests.java Прегледај датотеку

@@ -0,0 +1,13 @@
1
+package com.yunzhi.liyuanhui;
2
+
3
+import org.junit.jupiter.api.Test;
4
+import org.springframework.boot.test.context.SpringBootTest;
5
+
6
+@SpringBootTest
7
+class LiyuanhuiApplicationTests {
8
+
9
+	@Test
10
+	void contextLoads() {
11
+	}
12
+
13
+}