Skip to content

Instantly share code, notes, and snippets.

@hczs
Created July 26, 2021 02:06
Show Gist options
  • Save hczs/abf7b915784fe08b9586ba55c1d42d93 to your computer and use it in GitHub Desktop.
Save hczs/abf7b915784fe08b9586ba55c1d42d93 to your computer and use it in GitHub Desktop.
# Default ignored files
/workspace.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile default="true" name="Default" enabled="true" />
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="weather-mail" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel>
<module name="weather-mail" target="1.8" />
</bytecodeTargetLevel>
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="weather-mail" options="-parameters" />
</option>
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" defaultCharsetForPropertiesFiles="UTF-8">
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="PROJECT" charset="UTF-8" />
</component>
</project>
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="JavaDoc" enabled="true" level="WARNING" enabled_by_default="true">
<option name="TOP_LEVEL_CLASS_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="" />
</value>
</option>
<option name="INNER_CLASS_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="" />
</value>
</option>
<option name="METHOD_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="@return@param@throws or @exception" />
</value>
</option>
<option name="FIELD_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="" />
</value>
</option>
<option name="IGNORE_DEPRECATED" value="false" />
<option name="IGNORE_JAVADOC_PERIOD" value="true" />
<option name="IGNORE_DUPLICATED_THROWS" value="false" />
<option name="IGNORE_POINT_TO_ITSELF" value="false" />
<option name="myAdditionalJavadocTags" value="date" />
</inspection_tool>
</profile>
</component>
<component name="libraryTable">
<library name="Maven: ch.qos.logback:logback-classic:1.2.3">
<CLASSES>
<root url="jar://D:/dev/maven/repo/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: ch.qos.logback:logback-core:1.2.3">
<CLASSES>
<root url="jar://D:/dev/maven/repo/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/ch/qos/logback/logback-core/1.2.3/logback-core-1.2.3-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: cn.hutool:hutool-all:5.4.7">
<CLASSES>
<root url="jar://D:/dev/maven/repo/cn/hutool/hutool-all/5.4.7/hutool-all-5.4.7.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/cn/hutool/hutool-all/5.4.7/hutool-all-5.4.7-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/cn/hutool/hutool-all/5.4.7/hutool-all-5.4.7-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.12.3">
<CLASSES>
<root url="jar://D:/dev/maven/repo/com/fasterxml/jackson/core/jackson-annotations/2.12.3/jackson-annotations-2.12.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/com/fasterxml/jackson/core/jackson-annotations/2.12.3/jackson-annotations-2.12.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/com/fasterxml/jackson/core/jackson-annotations/2.12.3/jackson-annotations-2.12.3-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: com.fasterxml.jackson.core:jackson-core:2.12.3">
<CLASSES>
<root url="jar://D:/dev/maven/repo/com/fasterxml/jackson/core/jackson-core/2.12.3/jackson-core-2.12.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/com/fasterxml/jackson/core/jackson-core/2.12.3/jackson-core-2.12.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/com/fasterxml/jackson/core/jackson-core/2.12.3/jackson-core-2.12.3-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: com.fasterxml.jackson.core:jackson-databind:2.12.3">
<CLASSES>
<root url="jar://D:/dev/maven/repo/com/fasterxml/jackson/core/jackson-databind/2.12.3/jackson-databind-2.12.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/com/fasterxml/jackson/core/jackson-databind/2.12.3/jackson-databind-2.12.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/com/fasterxml/jackson/core/jackson-databind/2.12.3/jackson-databind-2.12.3-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.12.3">
<CLASSES>
<root url="jar://D:/dev/maven/repo/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.12.3/jackson-datatype-jdk8-2.12.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.12.3/jackson-datatype-jdk8-2.12.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.12.3/jackson-datatype-jdk8-2.12.3-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.12.3">
<CLASSES>
<root url="jar://D:/dev/maven/repo/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.12.3/jackson-datatype-jsr310-2.12.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.12.3/jackson-datatype-jsr310-2.12.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.12.3/jackson-datatype-jsr310-2.12.3-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.12.3">
<CLASSES>
<root url="jar://D:/dev/maven/repo/com/fasterxml/jackson/module/jackson-module-parameter-names/2.12.3/jackson-module-parameter-names-2.12.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/com/fasterxml/jackson/module/jackson-module-parameter-names/2.12.3/jackson-module-parameter-names-2.12.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/com/fasterxml/jackson/module/jackson-module-parameter-names/2.12.3/jackson-module-parameter-names-2.12.3-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: com.google.code.findbugs:jsr305:3.0.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: com.google.errorprone:error_prone_annotations:2.5.1">
<CLASSES>
<root url="jar://D:/dev/maven/repo/com/google/errorprone/error_prone_annotations/2.5.1/error_prone_annotations-2.5.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/com/google/errorprone/error_prone_annotations/2.5.1/error_prone_annotations-2.5.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/com/google/errorprone/error_prone_annotations/2.5.1/error_prone_annotations-2.5.1-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: com.google.guava:failureaccess:1.0.1">
<CLASSES>
<root url="jar://D:/dev/maven/repo/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: com.google.guava:guava:30.1.1-jre">
<CLASSES>
<root url="jar://D:/dev/maven/repo/com/google/guava/guava/30.1.1-jre/guava-30.1.1-jre.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/com/google/guava/guava/30.1.1-jre/guava-30.1.1-jre-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/com/google/guava/guava/30.1.1-jre/guava-30.1.1-jre-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava">
<CLASSES>
<root url="jar://D:/dev/maven/repo/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: com.google.j2objc:j2objc-annotations:1.3">
<CLASSES>
<root url="jar://D:/dev/maven/repo/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: com.jayway.jsonpath:json-path:2.5.0">
<CLASSES>
<root url="jar://D:/dev/maven/repo/com/jayway/jsonpath/json-path/2.5.0/json-path-2.5.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/com/jayway/jsonpath/json-path/2.5.0/json-path-2.5.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/com/jayway/jsonpath/json-path/2.5.0/json-path-2.5.0-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: com.sun.mail:javax.mail:1.6.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/com/sun/mail/javax.mail/1.6.2/javax.mail-1.6.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/com/sun/mail/javax.mail/1.6.2/javax.mail-1.6.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/com/sun/mail/javax.mail/1.6.2/javax.mail-1.6.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1">
<CLASSES>
<root url="jar://D:/dev/maven/repo/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: commons-configuration:commons-configuration:1.10">
<CLASSES>
<root url="jar://D:/dev/maven/repo/commons-configuration/commons-configuration/1.10/commons-configuration-1.10.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/commons-configuration/commons-configuration/1.10/commons-configuration-1.10-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/commons-configuration/commons-configuration/1.10/commons-configuration-1.10-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: commons-lang:commons-lang:2.6">
<CLASSES>
<root url="jar://D:/dev/maven/repo/commons-lang/commons-lang/2.6/commons-lang-2.6.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/commons-lang/commons-lang/2.6/commons-lang-2.6-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/commons-lang/commons-lang/2.6/commons-lang-2.6-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: commons-logging:commons-logging:1.1.1">
<CLASSES>
<root url="jar://D:/dev/maven/repo/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: jakarta.activation:jakarta.activation-api:1.2.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5">
<CLASSES>
<root url="jar://D:/dev/maven/repo/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3">
<CLASSES>
<root url="jar://D:/dev/maven/repo/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: javax.activation:activation:1.1">
<CLASSES>
<root url="jar://D:/dev/maven/repo/javax/activation/activation/1.1/activation-1.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/javax/activation/activation/1.1/activation-1.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/javax/activation/activation/1.1/activation-1.1-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: net.bytebuddy:byte-buddy:1.10.22">
<CLASSES>
<root url="jar://D:/dev/maven/repo/net/bytebuddy/byte-buddy/1.10.22/byte-buddy-1.10.22.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/net/bytebuddy/byte-buddy/1.10.22/byte-buddy-1.10.22-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/net/bytebuddy/byte-buddy/1.10.22/byte-buddy-1.10.22-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: net.bytebuddy:byte-buddy-agent:1.10.22">
<CLASSES>
<root url="jar://D:/dev/maven/repo/net/bytebuddy/byte-buddy-agent/1.10.22/byte-buddy-agent-1.10.22.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/net/bytebuddy/byte-buddy-agent/1.10.22/byte-buddy-agent-1.10.22-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/net/bytebuddy/byte-buddy-agent/1.10.22/byte-buddy-agent-1.10.22-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: net.minidev:json-smart:2.4.7">
<CLASSES>
<root url="jar://D:/dev/maven/repo/net/minidev/json-smart/2.4.7/json-smart-2.4.7.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/net/minidev/json-smart/2.4.7/json-smart-2.4.7-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/net/minidev/json-smart/2.4.7/json-smart-2.4.7-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.apache.logging.log4j:log4j-api:2.14.1">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/apache/logging/log4j/log4j-api/2.14.1/log4j-api-2.14.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/apache/logging/log4j/log4j-api/2.14.1/log4j-api-2.14.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/apache/logging/log4j/log4j-api/2.14.1/log4j-api-2.14.1-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.14.1">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/apache/logging/log4j/log4j-to-slf4j/2.14.1/log4j-to-slf4j-2.14.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/apache/logging/log4j/log4j-to-slf4j/2.14.1/log4j-to-slf4j-2.14.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/apache/logging/log4j/log4j-to-slf4j/2.14.1/log4j-to-slf4j-2.14.1-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.48">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/apache/tomcat/embed/tomcat-embed-core/9.0.48/tomcat-embed-core-9.0.48.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/apache/tomcat/embed/tomcat-embed-core/9.0.48/tomcat-embed-core-9.0.48-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/apache/tomcat/embed/tomcat-embed-core/9.0.48/tomcat-embed-core-9.0.48-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.48">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/apache/tomcat/embed/tomcat-embed-el/9.0.48/tomcat-embed-el-9.0.48.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/apache/tomcat/embed/tomcat-embed-el/9.0.48/tomcat-embed-el-9.0.48-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/apache/tomcat/embed/tomcat-embed-el/9.0.48/tomcat-embed-el-9.0.48-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.48">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.48/tomcat-embed-websocket-9.0.48.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.48/tomcat-embed-websocket-9.0.48-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.48/tomcat-embed-websocket-9.0.48-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.apiguardian:apiguardian-api:1.1.0">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/apiguardian/apiguardian-api/1.1.0/apiguardian-api-1.1.0-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.aspectj:aspectjweaver:1.9.6">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/aspectj/aspectjweaver/1.9.6/aspectjweaver-1.9.6-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.assertj:assertj-core:3.19.0">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/assertj/assertj-core/3.19.0/assertj-core-3.19.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/assertj/assertj-core/3.19.0/assertj-core-3.19.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/assertj/assertj-core/3.19.0/assertj-core-3.19.0-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.checkerframework:checker-qual:3.8.0">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/checkerframework/checker-qual/3.8.0/checker-qual-3.8.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/checkerframework/checker-qual/3.8.0/checker-qual-3.8.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/checkerframework/checker-qual/3.8.0/checker-qual-3.8.0-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.hamcrest:hamcrest:2.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/hamcrest/hamcrest/2.2/hamcrest-2.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/hamcrest/hamcrest/2.2/hamcrest-2.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.junit.jupiter:junit-jupiter:5.7.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/junit/jupiter/junit-jupiter/5.7.2/junit-jupiter-5.7.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/junit/jupiter/junit-jupiter/5.7.2/junit-jupiter-5.7.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/junit/jupiter/junit-jupiter/5.7.2/junit-jupiter-5.7.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.junit.jupiter:junit-jupiter-api:5.7.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/junit/jupiter/junit-jupiter-api/5.7.2/junit-jupiter-api-5.7.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/junit/jupiter/junit-jupiter-api/5.7.2/junit-jupiter-api-5.7.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/junit/jupiter/junit-jupiter-api/5.7.2/junit-jupiter-api-5.7.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.junit.jupiter:junit-jupiter-engine:5.7.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/junit/jupiter/junit-jupiter-engine/5.7.2/junit-jupiter-engine-5.7.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/junit/jupiter/junit-jupiter-engine/5.7.2/junit-jupiter-engine-5.7.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/junit/jupiter/junit-jupiter-engine/5.7.2/junit-jupiter-engine-5.7.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.junit.jupiter:junit-jupiter-params:5.7.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/junit/jupiter/junit-jupiter-params/5.7.2/junit-jupiter-params-5.7.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/junit/jupiter/junit-jupiter-params/5.7.2/junit-jupiter-params-5.7.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/junit/jupiter/junit-jupiter-params/5.7.2/junit-jupiter-params-5.7.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.junit.platform:junit-platform-commons:1.7.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/junit/platform/junit-platform-commons/1.7.2/junit-platform-commons-1.7.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/junit/platform/junit-platform-commons/1.7.2/junit-platform-commons-1.7.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/junit/platform/junit-platform-commons/1.7.2/junit-platform-commons-1.7.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.junit.platform:junit-platform-engine:1.7.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/junit/platform/junit-platform-engine/1.7.2/junit-platform-engine-1.7.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/junit/platform/junit-platform-engine/1.7.2/junit-platform-engine-1.7.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/junit/platform/junit-platform-engine/1.7.2/junit-platform-engine-1.7.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.mockito:mockito-core:3.9.0">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/mockito/mockito-core/3.9.0/mockito-core-3.9.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/mockito/mockito-core/3.9.0/mockito-core-3.9.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/mockito/mockito-core/3.9.0/mockito-core-3.9.0-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.mockito:mockito-junit-jupiter:3.9.0">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/mockito/mockito-junit-jupiter/3.9.0/mockito-junit-jupiter-3.9.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/mockito/mockito-junit-jupiter/3.9.0/mockito-junit-jupiter-3.9.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/mockito/mockito-junit-jupiter/3.9.0/mockito-junit-jupiter-3.9.0-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.objenesis:objenesis:3.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/objenesis/objenesis/3.2/objenesis-3.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/objenesis/objenesis/3.2/objenesis-3.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/objenesis/objenesis/3.2/objenesis-3.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.opentest4j:opentest4j:1.2.0">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.projectlombok:lombok:1.18.20">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/projectlombok/lombok/1.18.20/lombok-1.18.20-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/projectlombok/lombok/1.18.20/lombok-1.18.20-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.skyscreamer:jsonassert:1.5.0">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/skyscreamer/jsonassert/1.5.0/jsonassert-1.5.0-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.slf4j:jul-to-slf4j:1.7.31">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/slf4j/jul-to-slf4j/1.7.31/jul-to-slf4j-1.7.31.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/slf4j/jul-to-slf4j/1.7.31/jul-to-slf4j-1.7.31-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/slf4j/jul-to-slf4j/1.7.31/jul-to-slf4j-1.7.31-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.slf4j:slf4j-api:1.7.31">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/slf4j/slf4j-api/1.7.31/slf4j-api-1.7.31.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/slf4j/slf4j-api/1.7.31/slf4j-api-1.7.31-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/slf4j/slf4j-api/1.7.31/slf4j-api-1.7.31-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework.boot:spring-boot:2.5.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot/2.5.2/spring-boot-2.5.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot/2.5.2/spring-boot-2.5.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot/2.5.2/spring-boot-2.5.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.5.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-autoconfigure/2.5.2/spring-boot-autoconfigure-2.5.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-autoconfigure/2.5.2/spring-boot-autoconfigure-2.5.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-autoconfigure/2.5.2/spring-boot-autoconfigure-2.5.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework.boot:spring-boot-starter:2.5.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter/2.5.2/spring-boot-starter-2.5.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter/2.5.2/spring-boot-starter-2.5.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter/2.5.2/spring-boot-starter-2.5.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework.boot:spring-boot-starter-aop:2.5.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter-aop/2.5.2/spring-boot-starter-aop-2.5.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter-aop/2.5.2/spring-boot-starter-aop-2.5.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter-aop/2.5.2/spring-boot-starter-aop-2.5.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework.boot:spring-boot-starter-json:2.5.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter-json/2.5.2/spring-boot-starter-json-2.5.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter-json/2.5.2/spring-boot-starter-json-2.5.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter-json/2.5.2/spring-boot-starter-json-2.5.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework.boot:spring-boot-starter-logging:2.5.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter-logging/2.5.2/spring-boot-starter-logging-2.5.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter-logging/2.5.2/spring-boot-starter-logging-2.5.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter-logging/2.5.2/spring-boot-starter-logging-2.5.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework.boot:spring-boot-starter-test:2.5.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter-test/2.5.2/spring-boot-starter-test-2.5.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter-test/2.5.2/spring-boot-starter-test-2.5.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter-test/2.5.2/spring-boot-starter-test-2.5.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.5.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter-tomcat/2.5.2/spring-boot-starter-tomcat-2.5.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter-tomcat/2.5.2/spring-boot-starter-tomcat-2.5.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter-tomcat/2.5.2/spring-boot-starter-tomcat-2.5.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework.boot:spring-boot-starter-web:2.5.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter-web/2.5.2/spring-boot-starter-web-2.5.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter-web/2.5.2/spring-boot-starter-web-2.5.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-starter-web/2.5.2/spring-boot-starter-web-2.5.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework.boot:spring-boot-test:2.5.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-test/2.5.2/spring-boot-test-2.5.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-test/2.5.2/spring-boot-test-2.5.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-test/2.5.2/spring-boot-test-2.5.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.5.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-test-autoconfigure/2.5.2/spring-boot-test-autoconfigure-2.5.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-test-autoconfigure/2.5.2/spring-boot-test-autoconfigure-2.5.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/boot/spring-boot-test-autoconfigure/2.5.2/spring-boot-test-autoconfigure-2.5.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework:spring-aop:5.3.8">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-aop/5.3.8/spring-aop-5.3.8.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-aop/5.3.8/spring-aop-5.3.8-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-aop/5.3.8/spring-aop-5.3.8-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework:spring-beans:5.3.8">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-beans/5.3.8/spring-beans-5.3.8.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-beans/5.3.8/spring-beans-5.3.8-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-beans/5.3.8/spring-beans-5.3.8-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework:spring-context:5.3.8">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-context/5.3.8/spring-context-5.3.8.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-context/5.3.8/spring-context-5.3.8-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-context/5.3.8/spring-context-5.3.8-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework:spring-core:5.3.8">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-core/5.3.8/spring-core-5.3.8.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-core/5.3.8/spring-core-5.3.8-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-core/5.3.8/spring-core-5.3.8-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework:spring-expression:5.3.8">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-expression/5.3.8/spring-expression-5.3.8.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-expression/5.3.8/spring-expression-5.3.8-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-expression/5.3.8/spring-expression-5.3.8-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework:spring-jcl:5.3.8">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-jcl/5.3.8/spring-jcl-5.3.8.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-jcl/5.3.8/spring-jcl-5.3.8-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-jcl/5.3.8/spring-jcl-5.3.8-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework:spring-test:5.3.8">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-test/5.3.8/spring-test-5.3.8.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-test/5.3.8/spring-test-5.3.8-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-test/5.3.8/spring-test-5.3.8-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework:spring-web:5.3.8">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-web/5.3.8/spring-web-5.3.8.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-web/5.3.8/spring-web-5.3.8-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-web/5.3.8/spring-web-5.3.8-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.springframework:spring-webmvc:5.3.8">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-webmvc/5.3.8/spring-webmvc-5.3.8.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-webmvc/5.3.8/spring-webmvc-5.3.8-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/springframework/spring-webmvc/5.3.8/spring-webmvc-5.3.8-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.xmlunit:xmlunit-core:2.8.2">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/xmlunit/xmlunit-core/2.8.2/xmlunit-core-2.8.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/xmlunit/xmlunit-core/2.8.2/xmlunit-core-2.8.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/xmlunit/xmlunit-core/2.8.2/xmlunit-core-2.8.2-sources.jar!/" />
</SOURCES>
</library>
</component>
<component name="libraryTable">
<library name="Maven: org.yaml:snakeyaml:1.28">
<CLASSES>
<root url="jar://D:/dev/maven/repo/org/yaml/snakeyaml/1.28/snakeyaml-1.28.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://D:/dev/maven/repo/org/yaml/snakeyaml/1.28/snakeyaml-1.28-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://D:/dev/maven/repo/org/yaml/snakeyaml/1.28/snakeyaml-1.28-sources.jar!/" />
</SOURCES>
</library>
</component>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/weather-mail.iml" filepath="$PROJECT_DIR$/weather-mail.iml" />
</modules>
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="IceFramework">
<ice-frameworks />
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.hc</groupId>
<artifactId>weather-mail</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>weather-mail</name>
<description>send weather mail</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- hutool工具包 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.4.7</version>
</dependency>
<!-- mail依赖 -->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
<!-- aop -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
<version>2.5.2</version>
</dependency>
<!-- apache commons configuration -->
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.10</version>
</dependency>
<!-- guava 谷歌的java工具包 -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.1.1-jre</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>

weather-mail

介绍

由于最近北京天气变化太快,下班也时长忘记看天气,所以使用springboot定时任务,每天下班(12:00、18:00)给我的邮箱发送天气信息,防止出现下班之后不带伞被雨淋的情况

主要涉及技术点

  1. 自定义注解 + aop,实现自定义日志注解,在方法上加上@PrintLog注解,即可在控制台打印方法执行的日志,如方法执行时间,执行了哪个方法,方法执行完毕结束时间
  2. springboot定时任务
  3. 邮件发送,使用hutool工具包封装的邮件发送
  4. 使用restTemplate进行http调用
  5. properties配置文件的读取

安装使用教程

  1. 拉取项目到本地
  2. 使用idea,open打开,等待pom中依赖包的下载
  3. 打开天气API,本次天气调用使用的是此天气实况接口,使用需要邮箱注册
  4. 注册完成之后,进入个人中心,把appid和appsecret,填写到配置文件weathermail.properties中
  5. 打开city.json,去city.json中搜索你的城市id,填写到weathermail.properties中
  6. weathermail.properties中的”to“配置为你的接收天气邮件信息的邮箱
  7. 在resources的config目录下,配置mail.setting文件,这个邮箱是你发送天气邮件信息的邮箱,需要配置邮箱地址和授权码,授权码获取教程自行Google
  8. 启动WeatherMailApplication,访问http://localhost:8050/hello/11,返回hello,world!代表启动完成
  9. 可以在test/java/com/hc/weathermail包下找到测试类,自行测试配置文件和获取天气api是否可以正常使用
  10. 【推荐】本地测试无问题后,将项目打jar包,放在服务器上,然后可以安心工作,下班就会有邮件提醒到邮箱了!

参与贡献

  1. Fork 本仓库
  2. 新建 feater-你的英文功能名 分支
  3. 提交代码
  4. 新建 Pull Request

后续展望

  1. 邮件定时发送时间可配置(或前端设置、或配置文件配置)
  2. 添加发送多个目标邮件功能(多线程同时发)
  3. 配置文件修改不用重新打包项目,做到可以读取外部配置文件,并做到配置文件修改实时刷新
  4. 邮件内容做到可配置,可配置邮件发送模板(前端配置)
  5. 做到特殊天气(暴雨、大风、大雪)强提醒(短信或连续发三个邮件等方式)
package com.hc.weathermail.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* @author: houcheng
* @date: 2021/7/24 11:15
* @version: V1.0
* @description: 用作方法上,打印方法执行信息
* @modify:
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface PrintLog {
}
package com.hc.weathermail.aspect;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.Signature;
import org.aspectj.lang.annotation.*;
import org.springframework.cglib.beans.BeanMap;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.Arrays;
/**
* @author: houcheng
* @date: 2021/7/24 11:11
* @version: V1.0
* @description:
* @modify:
*/
@Slf4j
@Aspect
@Component
public class LoggerAspect {
/**
* 以注解作为切点切入
*/
@Pointcut("@annotation(com.hc.weathermail.annotation.PrintLog)")
public void logPoint() {
}
/**
* 前置通知,打印一下东西
*/
@Before("logPoint()")
public void beforeInvokeMethod(JoinPoint joinPoint) {
Signature signature = joinPoint.getSignature();
log.info("当前时间:" + LocalDateTime.now());
log.info("开始执行方法:" + signature.getDeclaringTypeName() + "-" + signature.getName());
}
@After("logPoint()")
public void afterInvokeMethod(JoinPoint joinPoint) {
Signature signature = joinPoint.getSignature();
log.info("当前时间:" + LocalDateTime.now());
log.info("方法执行完毕:" + signature.getDeclaringTypeName() + "-" + signature.getName());
}
}
package com.hc.weathermail.controller;
import com.hc.weathermail.annotation.PrintLog;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
/**
* @author: houcheng
* @date: 2021/7/21 11:16
* @version: V1.0
* @description: 测试程序是否启动
* @modify:
*/
@RestController
public class TestController {
@PrintLog
@GetMapping("/hello/{id}")
public String hello(@PathVariable String id) {
return "hello world!";
}
}
package com.hc.weathermail.entity;
/**
* @author: houcheng
* @date: 2021/7/24 16:09
* @version: V1.0
* @description: 工程常量类
* @modify:
*/
public class ProjectConstant {
/**
* weathermail.properties配置文件
*/
public static String WEATHERMAIL_CONFIG = "weathermail.properties";
}
package com.hc.weathermail.entity;
import lombok.Data;
/**
* @author: houcheng
* @date: 2021/7/23 9:02
* @version: V1.0
* @description:
* @modify:
*/
@Data
public class WeatherVo {
private String cityid;
/**
* 城市名称
*/
private String city;
private String date;
/**
* 当前星期
*/
private String week;
/**
* 气象台更新时间
*/
private String update_time;
/**
* 天气情况
*/
private String wea;
/**
* 实时温度
*/
private String tem;
/**
* 最高温
*/
private String tem1;
/**
* 最低温
*/
private String tem2;
/**
* 风力等级,大于等于6是强风
*/
private String win_speed;
/**
* 今日建议
*/
private String air_tips;
}
package com.hc.weathermail.schedule;
import cn.hutool.extra.mail.MailUtil;
import com.hc.weathermail.entity.WeatherVo;
import com.hc.weathermail.utils.ConfigUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.configuration.Configuration;
import org.springframework.http.ResponseEntity;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import java.time.LocalDateTime;
/**
* @author: houcheng
* @date: 2021/7/22 14:34
* @version: V1.0
* @description:
* @modify:
*/
@Component
@EnableScheduling
@Slf4j
public class StaticScheduleTask {
/**
* 每天12点和18点执行
*/
@Scheduled(cron = "0 0 12,18 * * ?")
public void sendWeatherMail() {
Configuration weatherConfig = ConfigUtil.getWeatherConfig();
if (weatherConfig != null) {
String to = weatherConfig.getString("to");
// 获取天气信息
WeatherVo weatherInfo = getWeatherInfo(weatherConfig);
if (weatherInfo != null) {
log.info("获取天气信息:" + weatherInfo.toString());
// 发送邮件
StringBuilder sb = new StringBuilder();
sb.append("当前城市:").append(weatherInfo.getCity()).append("\n")
.append("当前天气:").append(weatherInfo.getWea()).append("\n")
.append("最近更新时间:").append(weatherInfo.getDate()).append("\n")
.append("当前温度:").append(weatherInfo.getTem()).append("\n")
.append("最高温:").append(weatherInfo.getTem1()).append("\n")
.append("最低温:").append(weatherInfo.getTem2()).append("\n")
.append("风速:").append(weatherInfo.getWin_speed()).append("\n")
.append("温馨提示:").append(weatherInfo.getAir_tips());
log.info("邮件内容:" + sb.toString());
MailUtil.send(to, "天气情况", sb.toString(), false);
} else {
MailUtil.send(to, "获取天气情况失败", "应该是接口出问题了", false);
}
}
}
/**
* 获取天气信息
* @param weatherConfig 配置信息
* @return WeatherVo
*/
private WeatherVo getWeatherInfo(Configuration weatherConfig) {
String url = weatherConfig.getString("url");
String appid = weatherConfig.getString("appid");
String appsecret = weatherConfig.getString("appsecret");
String cityid = weatherConfig.getString("cityid");
// 使用restTemplate发送请求
RestTemplate restTemplate = new RestTemplate();
// 准备参数
String resUrl = url + "&" + "appid=" + appid +
"&" + "appsecret=" + appsecret +
"&" + "cityid=" + cityid;
ResponseEntity<WeatherVo> res = restTemplate.getForEntity(resUrl, WeatherVo.class);
return res.getBody();
}
}
package com.hc.weathermail.utils;
import cn.hutool.core.util.PageUtil;
import com.hc.weathermail.entity.ProjectConstant;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.springframework.stereotype.Component;
/**
* @author: houcheng
* @date: 2021/7/24 16:03
* @version: V1.0
* @description: 读取配置文件信息
* @modify:
*/
@Slf4j
public class ConfigUtil {
private static Configuration configuration;
/**
* 获取系统配置信息
* @return 配置信息
*/
public static Configuration getWeatherConfig() {
if (configuration == null) {
try {
configuration = new PropertiesConfiguration(ProjectConstant.WEATHERMAIL_CONFIG);
} catch (ConfigurationException e) {
log.error("获取配置文件异常!" + e.getMessage());
return null;
}
}
return configuration;
}
}
package com.hc.weathermail;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author houcheng
*/
@SpringBootApplication
public class WeatherMailApplication {
public static void main(String[] args) {
SpringApplication.run(WeatherMailApplication.class, args);
}
}
# 发件人(必须正确,否则发送失败)
from = xx@example.com
# 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助)
pass = xx
# 发送的目标邮箱
to=hczshd@163.com
# 天气请求url接口信息,appid和appsecret需要自己注册,免费接口,邮箱注册
# 【必须】天气接口参数
url=https://tianqiapi.com/api?version=v6
appid=xx
appsecret=xx
# 【非必须】城市id根据https://gitee.com/wangjins/weather_api,city.json找相应城市id,101010100是北京,无cityid参数模式是请求ip所在城市
cityid=101010100
package com.hc.weathermail;
import com.hc.weathermail.entity.WeatherVo;
import com.hc.weathermail.utils.ConfigUtil;
import org.apache.commons.configuration.Configuration;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
@SpringBootTest
class WeatherMailApplicationTests {
@Test
void contextLoads() {
}
/**
* 测试获取配置信息
*/
@Test
public void testGetConfig() {
Configuration weatherConfig = ConfigUtil.getWeatherConfig();
if (weatherConfig != null) {
System.out.println(weatherConfig.getString("url"));
System.out.println(weatherConfig.getString("to"));
System.out.println(weatherConfig.getString("appid"));
System.out.println(weatherConfig.getString("appsecret"));
System.out.println(weatherConfig.getString("cityid"));
}
}
/**
* 测试获取天气信息
*/
@Test
public void testGetWeather() {
Configuration weatherConfig = ConfigUtil.getWeatherConfig();
if (weatherConfig != null) {
String url = weatherConfig.getString("url");
String to = weatherConfig.getString("to");
String appid = weatherConfig.getString("appid");
String appsecret = weatherConfig.getString("appsecret");
String cityid = weatherConfig.getString("cityid");
// 使用restTemplate发送请求
RestTemplate restTemplate = new RestTemplate();
// 准备参数
String resUrl = url + "&" + "appid=" + appid +
"&" + "appsecret=" + appsecret +
"&" + "cityid=" + cityid;
ResponseEntity<WeatherVo> res = restTemplate.getForEntity(resUrl, WeatherVo.class);
WeatherVo weatherVo = res.getBody();
System.out.println(weatherVo);
}
}
}
# 发件人(必须正确,否则发送失败)
from = hczs88881215@163.com
# 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助)
pass = ATBHVEAMRYHSIUDC
# ���͵�Ŀ������
to=hczshd@163.com
# ��������url�ӿ���Ϣ��appid��appsecret��Ҫ�Լ�ע�ᣬ��ѽӿڣ�����ע��
# �����롿�����ӿڲ���
url=https://tianqiapi.com/api?version=v6
appid=35752734
appsecret=qvdDdN8l
# ���DZ��롿����id����https://gitee.com/wangjins/weather_api��city.json����Ӧ����id��101010100�DZ�������cityid����ģʽ������ip���ڳ���
cityid=101010100
artifactId=weather-mail
groupId=com.hc
version=0.0.1-SNAPSHOT
com\hc\weathermail\WeatherMailApplication.class
com\hc\weathermail\utils\ConfigUtil.class
com\hc\weathermail\aspect\LoggerAspect.class
com\hc\weathermail\entity\ProjectConstant.class
com\hc\weathermail\schedule\StaticScheduleTask.class
com\hc\weathermail\controller\TestController.class
com\hc\weathermail\entity\WeatherVo.class
com\hc\weathermail\annotation\PrintLog.class
D:\gitwork\other\weather-mail\src\main\java\com\hc\weathermail\entity\ProjectConstant.java
D:\gitwork\other\weather-mail\src\main\java\com\hc\weathermail\annotation\PrintLog.java
D:\gitwork\other\weather-mail\src\main\java\com\hc\weathermail\aspect\LoggerAspect.java
D:\gitwork\other\weather-mail\src\main\java\com\hc\weathermail\entity\WeatherVo.java
D:\gitwork\other\weather-mail\src\main\java\com\hc\weathermail\WeatherMailApplication.java
D:\gitwork\other\weather-mail\src\main\java\com\hc\weathermail\schedule\StaticScheduleTask.java
D:\gitwork\other\weather-mail\src\main\java\com\hc\weathermail\controller\TestController.java
D:\gitwork\other\weather-mail\src\main\java\com\hc\weathermail\utils\ConfigUtil.java
D:\gitwork\other\weather-mail\src\test\java\com\hc\weathermail\WeatherMailApplicationTests.java
-------------------------------------------------------------------------------
Test set: com.hc.weathermail.WeatherMailApplicationTests
-------------------------------------------------------------------------------
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.899 s - in com.hc.weathermail.WeatherMailApplicationTests
<?xml version="1.0" encoding="UTF-8"?>
<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="com.hc.weathermail.WeatherMailApplicationTests" time="3.899" tests="3" errors="0" skipped="0" failures="0">
<properties>
<property name="sun.desktop" value="windows"/>
<property name="awt.toolkit" value="sun.awt.windows.WToolkit"/>
<property name="file.encoding.pkg" value="sun.io"/>
<property name="java.specification.version" value="1.8"/>
<property name="sun.cpu.isalist" value="amd64"/>
<property name="sun.jnu.encoding" value="GBK"/>
<property name="java.class.path" value="D:\gitwork\other\weather-mail\target\test-classes;D:\gitwork\other\weather-mail\target\classes;D:\dev\maven\repo\org\springframework\boot\spring-boot-starter-web\2.5.2\spring-boot-starter-web-2.5.2.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot-starter\2.5.2\spring-boot-starter-2.5.2.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot\2.5.2\spring-boot-2.5.2.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot-autoconfigure\2.5.2\spring-boot-autoconfigure-2.5.2.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot-starter-logging\2.5.2\spring-boot-starter-logging-2.5.2.jar;D:\dev\maven\repo\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\dev\maven\repo\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;D:\dev\maven\repo\org\apache\logging\log4j\log4j-to-slf4j\2.14.1\log4j-to-slf4j-2.14.1.jar;D:\dev\maven\repo\org\apache\logging\log4j\log4j-api\2.14.1\log4j-api-2.14.1.jar;D:\dev\maven\repo\org\slf4j\jul-to-slf4j\1.7.31\jul-to-slf4j-1.7.31.jar;D:\dev\maven\repo\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\dev\maven\repo\org\yaml\snakeyaml\1.28\snakeyaml-1.28.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot-starter-json\2.5.2\spring-boot-starter-json-2.5.2.jar;D:\dev\maven\repo\com\fasterxml\jackson\core\jackson-databind\2.12.3\jackson-databind-2.12.3.jar;D:\dev\maven\repo\com\fasterxml\jackson\core\jackson-annotations\2.12.3\jackson-annotations-2.12.3.jar;D:\dev\maven\repo\com\fasterxml\jackson\core\jackson-core\2.12.3\jackson-core-2.12.3.jar;D:\dev\maven\repo\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.12.3\jackson-datatype-jdk8-2.12.3.jar;D:\dev\maven\repo\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.12.3\jackson-datatype-jsr310-2.12.3.jar;D:\dev\maven\repo\com\fasterxml\jackson\module\jackson-module-parameter-names\2.12.3\jackson-module-parameter-names-2.12.3.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot-starter-tomcat\2.5.2\spring-boot-starter-tomcat-2.5.2.jar;D:\dev\maven\repo\org\apache\tomcat\embed\tomcat-embed-core\9.0.48\tomcat-embed-core-9.0.48.jar;D:\dev\maven\repo\org\apache\tomcat\embed\tomcat-embed-el\9.0.48\tomcat-embed-el-9.0.48.jar;D:\dev\maven\repo\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.48\tomcat-embed-websocket-9.0.48.jar;D:\dev\maven\repo\org\springframework\spring-web\5.3.8\spring-web-5.3.8.jar;D:\dev\maven\repo\org\springframework\spring-beans\5.3.8\spring-beans-5.3.8.jar;D:\dev\maven\repo\org\springframework\spring-webmvc\5.3.8\spring-webmvc-5.3.8.jar;D:\dev\maven\repo\org\springframework\spring-context\5.3.8\spring-context-5.3.8.jar;D:\dev\maven\repo\org\springframework\spring-expression\5.3.8\spring-expression-5.3.8.jar;D:\dev\maven\repo\org\projectlombok\lombok\1.18.20\lombok-1.18.20.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot-starter-test\2.5.2\spring-boot-starter-test-2.5.2.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot-test\2.5.2\spring-boot-test-2.5.2.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot-test-autoconfigure\2.5.2\spring-boot-test-autoconfigure-2.5.2.jar;D:\dev\maven\repo\com\jayway\jsonpath\json-path\2.5.0\json-path-2.5.0.jar;D:\dev\maven\repo\net\minidev\json-smart\2.4.7\json-smart-2.4.7.jar;D:\dev\maven\repo\org\slf4j\slf4j-api\1.7.31\slf4j-api-1.7.31.jar;D:\dev\maven\repo\jakarta\xml\bind\jakarta.xml.bind-api\2.3.3\jakarta.xml.bind-api-2.3.3.jar;D:\dev\maven\repo\jakarta\activation\jakarta.activation-api\1.2.2\jakarta.activation-api-1.2.2.jar;D:\dev\maven\repo\org\assertj\assertj-core\3.19.0\assertj-core-3.19.0.jar;D:\dev\maven\repo\org\hamcrest\hamcrest\2.2\hamcrest-2.2.jar;D:\dev\maven\repo\org\junit\jupiter\junit-jupiter\5.7.2\junit-jupiter-5.7.2.jar;D:\dev\maven\repo\org\junit\jupiter\junit-jupiter-api\5.7.2\junit-jupiter-api-5.7.2.jar;D:\dev\maven\repo\org\apiguardian\apiguardian-api\1.1.0\apiguardian-api-1.1.0.jar;D:\dev\maven\repo\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;D:\dev\maven\repo\org\junit\platform\junit-platform-commons\1.7.2\junit-platform-commons-1.7.2.jar;D:\dev\maven\repo\org\junit\jupiter\junit-jupiter-params\5.7.2\junit-jupiter-params-5.7.2.jar;D:\dev\maven\repo\org\junit\jupiter\junit-jupiter-engine\5.7.2\junit-jupiter-engine-5.7.2.jar;D:\dev\maven\repo\org\junit\platform\junit-platform-engine\1.7.2\junit-platform-engine-1.7.2.jar;D:\dev\maven\repo\org\mockito\mockito-core\3.9.0\mockito-core-3.9.0.jar;D:\dev\maven\repo\net\bytebuddy\byte-buddy\1.10.22\byte-buddy-1.10.22.jar;D:\dev\maven\repo\net\bytebuddy\byte-buddy-agent\1.10.22\byte-buddy-agent-1.10.22.jar;D:\dev\maven\repo\org\objenesis\objenesis\3.2\objenesis-3.2.jar;D:\dev\maven\repo\org\mockito\mockito-junit-jupiter\3.9.0\mockito-junit-jupiter-3.9.0.jar;D:\dev\maven\repo\org\skyscreamer\jsonassert\1.5.0\jsonassert-1.5.0.jar;D:\dev\maven\repo\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;D:\dev\maven\repo\org\springframework\spring-core\5.3.8\spring-core-5.3.8.jar;D:\dev\maven\repo\org\springframework\spring-jcl\5.3.8\spring-jcl-5.3.8.jar;D:\dev\maven\repo\org\springframework\spring-test\5.3.8\spring-test-5.3.8.jar;D:\dev\maven\repo\org\xmlunit\xmlunit-core\2.8.2\xmlunit-core-2.8.2.jar;D:\dev\maven\repo\cn\hutool\hutool-all\5.4.7\hutool-all-5.4.7.jar;D:\dev\maven\repo\com\sun\mail\javax.mail\1.6.2\javax.mail-1.6.2.jar;D:\dev\maven\repo\javax\activation\activation\1.1\activation-1.1.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot-starter-aop\2.5.2\spring-boot-starter-aop-2.5.2.jar;D:\dev\maven\repo\org\springframework\spring-aop\5.3.8\spring-aop-5.3.8.jar;D:\dev\maven\repo\org\aspectj\aspectjweaver\1.9.6\aspectjweaver-1.9.6.jar;D:\dev\maven\repo\commons-configuration\commons-configuration\1.10\commons-configuration-1.10.jar;D:\dev\maven\repo\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;D:\dev\maven\repo\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;D:\dev\maven\repo\com\google\guava\guava\30.1.1-jre\guava-30.1.1-jre.jar;D:\dev\maven\repo\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;D:\dev\maven\repo\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;D:\dev\maven\repo\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;D:\dev\maven\repo\org\checkerframework\checker-qual\3.8.0\checker-qual-3.8.0.jar;D:\dev\maven\repo\com\google\errorprone\error_prone_annotations\2.5.1\error_prone_annotations-2.5.1.jar;D:\dev\maven\repo\com\google\j2objc\j2objc-annotations\1.3\j2objc-annotations-1.3.jar;"/>
<property name="java.vm.vendor" value="Oracle Corporation"/>
<property name="sun.arch.data.model" value="64"/>
<property name="user.variant" value=""/>
<property name="java.vendor.url" value="http://java.oracle.com/"/>
<property name="user.timezone" value="Asia/Shanghai"/>
<property name="java.vm.specification.version" value="1.8"/>
<property name="os.name" value="Windows 10"/>
<property name="user.country" value="CN"/>
<property name="sun.java.launcher" value="SUN_STANDARD"/>
<property name="sun.boot.library.path" value="C:\Program Files\Java\jdk1.8.0_131\jre\bin"/>
<property name="sun.java.command" value="C:\Users\ADMINI~1\AppData\Local\Temp\surefire3394844182601333013\surefirebooter512910098735992218.jar C:\Users\Administrator\AppData\Local\Temp\surefire3394844182601333013 2021-07-24T17-24-44_570-jvmRun1 surefire9088222556057705210tmp surefire_04406767944715409499tmp"/>
<property name="surefire.test.class.path" value="D:\gitwork\other\weather-mail\target\test-classes;D:\gitwork\other\weather-mail\target\classes;D:\dev\maven\repo\org\springframework\boot\spring-boot-starter-web\2.5.2\spring-boot-starter-web-2.5.2.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot-starter\2.5.2\spring-boot-starter-2.5.2.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot\2.5.2\spring-boot-2.5.2.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot-autoconfigure\2.5.2\spring-boot-autoconfigure-2.5.2.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot-starter-logging\2.5.2\spring-boot-starter-logging-2.5.2.jar;D:\dev\maven\repo\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\dev\maven\repo\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;D:\dev\maven\repo\org\apache\logging\log4j\log4j-to-slf4j\2.14.1\log4j-to-slf4j-2.14.1.jar;D:\dev\maven\repo\org\apache\logging\log4j\log4j-api\2.14.1\log4j-api-2.14.1.jar;D:\dev\maven\repo\org\slf4j\jul-to-slf4j\1.7.31\jul-to-slf4j-1.7.31.jar;D:\dev\maven\repo\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\dev\maven\repo\org\yaml\snakeyaml\1.28\snakeyaml-1.28.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot-starter-json\2.5.2\spring-boot-starter-json-2.5.2.jar;D:\dev\maven\repo\com\fasterxml\jackson\core\jackson-databind\2.12.3\jackson-databind-2.12.3.jar;D:\dev\maven\repo\com\fasterxml\jackson\core\jackson-annotations\2.12.3\jackson-annotations-2.12.3.jar;D:\dev\maven\repo\com\fasterxml\jackson\core\jackson-core\2.12.3\jackson-core-2.12.3.jar;D:\dev\maven\repo\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.12.3\jackson-datatype-jdk8-2.12.3.jar;D:\dev\maven\repo\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.12.3\jackson-datatype-jsr310-2.12.3.jar;D:\dev\maven\repo\com\fasterxml\jackson\module\jackson-module-parameter-names\2.12.3\jackson-module-parameter-names-2.12.3.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot-starter-tomcat\2.5.2\spring-boot-starter-tomcat-2.5.2.jar;D:\dev\maven\repo\org\apache\tomcat\embed\tomcat-embed-core\9.0.48\tomcat-embed-core-9.0.48.jar;D:\dev\maven\repo\org\apache\tomcat\embed\tomcat-embed-el\9.0.48\tomcat-embed-el-9.0.48.jar;D:\dev\maven\repo\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.48\tomcat-embed-websocket-9.0.48.jar;D:\dev\maven\repo\org\springframework\spring-web\5.3.8\spring-web-5.3.8.jar;D:\dev\maven\repo\org\springframework\spring-beans\5.3.8\spring-beans-5.3.8.jar;D:\dev\maven\repo\org\springframework\spring-webmvc\5.3.8\spring-webmvc-5.3.8.jar;D:\dev\maven\repo\org\springframework\spring-context\5.3.8\spring-context-5.3.8.jar;D:\dev\maven\repo\org\springframework\spring-expression\5.3.8\spring-expression-5.3.8.jar;D:\dev\maven\repo\org\projectlombok\lombok\1.18.20\lombok-1.18.20.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot-starter-test\2.5.2\spring-boot-starter-test-2.5.2.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot-test\2.5.2\spring-boot-test-2.5.2.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot-test-autoconfigure\2.5.2\spring-boot-test-autoconfigure-2.5.2.jar;D:\dev\maven\repo\com\jayway\jsonpath\json-path\2.5.0\json-path-2.5.0.jar;D:\dev\maven\repo\net\minidev\json-smart\2.4.7\json-smart-2.4.7.jar;D:\dev\maven\repo\org\slf4j\slf4j-api\1.7.31\slf4j-api-1.7.31.jar;D:\dev\maven\repo\jakarta\xml\bind\jakarta.xml.bind-api\2.3.3\jakarta.xml.bind-api-2.3.3.jar;D:\dev\maven\repo\jakarta\activation\jakarta.activation-api\1.2.2\jakarta.activation-api-1.2.2.jar;D:\dev\maven\repo\org\assertj\assertj-core\3.19.0\assertj-core-3.19.0.jar;D:\dev\maven\repo\org\hamcrest\hamcrest\2.2\hamcrest-2.2.jar;D:\dev\maven\repo\org\junit\jupiter\junit-jupiter\5.7.2\junit-jupiter-5.7.2.jar;D:\dev\maven\repo\org\junit\jupiter\junit-jupiter-api\5.7.2\junit-jupiter-api-5.7.2.jar;D:\dev\maven\repo\org\apiguardian\apiguardian-api\1.1.0\apiguardian-api-1.1.0.jar;D:\dev\maven\repo\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;D:\dev\maven\repo\org\junit\platform\junit-platform-commons\1.7.2\junit-platform-commons-1.7.2.jar;D:\dev\maven\repo\org\junit\jupiter\junit-jupiter-params\5.7.2\junit-jupiter-params-5.7.2.jar;D:\dev\maven\repo\org\junit\jupiter\junit-jupiter-engine\5.7.2\junit-jupiter-engine-5.7.2.jar;D:\dev\maven\repo\org\junit\platform\junit-platform-engine\1.7.2\junit-platform-engine-1.7.2.jar;D:\dev\maven\repo\org\mockito\mockito-core\3.9.0\mockito-core-3.9.0.jar;D:\dev\maven\repo\net\bytebuddy\byte-buddy\1.10.22\byte-buddy-1.10.22.jar;D:\dev\maven\repo\net\bytebuddy\byte-buddy-agent\1.10.22\byte-buddy-agent-1.10.22.jar;D:\dev\maven\repo\org\objenesis\objenesis\3.2\objenesis-3.2.jar;D:\dev\maven\repo\org\mockito\mockito-junit-jupiter\3.9.0\mockito-junit-jupiter-3.9.0.jar;D:\dev\maven\repo\org\skyscreamer\jsonassert\1.5.0\jsonassert-1.5.0.jar;D:\dev\maven\repo\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;D:\dev\maven\repo\org\springframework\spring-core\5.3.8\spring-core-5.3.8.jar;D:\dev\maven\repo\org\springframework\spring-jcl\5.3.8\spring-jcl-5.3.8.jar;D:\dev\maven\repo\org\springframework\spring-test\5.3.8\spring-test-5.3.8.jar;D:\dev\maven\repo\org\xmlunit\xmlunit-core\2.8.2\xmlunit-core-2.8.2.jar;D:\dev\maven\repo\cn\hutool\hutool-all\5.4.7\hutool-all-5.4.7.jar;D:\dev\maven\repo\com\sun\mail\javax.mail\1.6.2\javax.mail-1.6.2.jar;D:\dev\maven\repo\javax\activation\activation\1.1\activation-1.1.jar;D:\dev\maven\repo\org\springframework\boot\spring-boot-starter-aop\2.5.2\spring-boot-starter-aop-2.5.2.jar;D:\dev\maven\repo\org\springframework\spring-aop\5.3.8\spring-aop-5.3.8.jar;D:\dev\maven\repo\org\aspectj\aspectjweaver\1.9.6\aspectjweaver-1.9.6.jar;D:\dev\maven\repo\commons-configuration\commons-configuration\1.10\commons-configuration-1.10.jar;D:\dev\maven\repo\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;D:\dev\maven\repo\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;D:\dev\maven\repo\com\google\guava\guava\30.1.1-jre\guava-30.1.1-jre.jar;D:\dev\maven\repo\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;D:\dev\maven\repo\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;D:\dev\maven\repo\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;D:\dev\maven\repo\org\checkerframework\checker-qual\3.8.0\checker-qual-3.8.0.jar;D:\dev\maven\repo\com\google\errorprone\error_prone_annotations\2.5.1\error_prone_annotations-2.5.1.jar;D:\dev\maven\repo\com\google\j2objc\j2objc-annotations\1.3\j2objc-annotations-1.3.jar;"/>
<property name="sun.cpu.endian" value="little"/>
<property name="user.home" value="C:\Users\Administrator"/>
<property name="user.language" value="zh"/>
<property name="java.specification.vendor" value="Oracle Corporation"/>
<property name="java.home" value="C:\Program Files\Java\jdk1.8.0_131\jre"/>
<property name="basedir" value="D:\gitwork\other\weather-mail"/>
<property name="file.separator" value="\"/>
<property name="line.separator" value="&#10;"/>
<property name="java.vm.specification.vendor" value="Oracle Corporation"/>
<property name="java.specification.name" value="Java Platform API Specification"/>
<property name="java.awt.graphicsenv" value="sun.awt.Win32GraphicsEnvironment"/>
<property name="surefire.real.class.path" value="C:\Users\ADMINI~1\AppData\Local\Temp\surefire3394844182601333013\surefirebooter512910098735992218.jar"/>
<property name="sun.boot.class.path" value="C:\Program Files\Java\jdk1.8.0_131\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_131\jre\classes"/>
<property name="user.script" value=""/>
<property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
<property name="java.runtime.version" value="1.8.0_131-b11"/>
<property name="user.name" value="Administrator"/>
<property name="path.separator" value=";"/>
<property name="os.version" value="10.0"/>
<property name="java.endorsed.dirs" value="C:\Program Files\Java\jdk1.8.0_131\jre\lib\endorsed"/>
<property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/>
<property name="file.encoding" value="GBK"/>
<property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/>
<property name="localRepository" value="D:\dev\maven\repo"/>
<property name="java.vendor.url.bug" value="http://bugreport.sun.com/bugreport/"/>
<property name="java.io.tmpdir" value="C:\Users\ADMINI~1\AppData\Local\Temp\"/>
<property name="java.version" value="1.8.0_131"/>
<property name="user.dir" value="D:\gitwork\other\weather-mail"/>
<property name="os.arch" value="amd64"/>
<property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
<property name="java.awt.printerjob" value="sun.awt.windows.WPrinterJob"/>
<property name="sun.os.patch.level" value=""/>
<property name="java.library.path" value="C:\Program Files\Java\jdk1.8.0_131\jre\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;D:\app\VMware\bin\;C:\ProgramData\Oracle\Java\javapath;D:\app\oracle\product\11.1.0\client_2;D:\app\oracle\product\11.1.0\client_2\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;D:\Program Files\Git\cmd;C:\Program Files\Java\jdk1.8.0_131\bin;D:\app\oracle\product\11.1.0\client_2;D:\Program Files\TortoiseGit\bin;D:\app\ice\Ice-3.6.1\bin;C:\Program Files\EmEditor;D:\dev\ice\bin;C:\windows\system32;D:\dev\maven\apache-maven-3.5.2\bin;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;;D:\Program Files\IntelliJ IDEA 2019.3.2\bin;;."/>
<property name="idea.version2019.3.2" value="true"/>
<property name="java.vm.info" value="mixed mode"/>
<property name="java.vendor" value="Oracle Corporation"/>
<property name="java.vm.version" value="25.131-b11"/>
<property name="java.ext.dirs" value="C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext;C:\Windows\Sun\Java\lib\ext"/>
<property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
<property name="maven.repo.local" value="D:\dev\maven\repo"/>
<property name="java.class.version" value="52.0"/>
</properties>
<testcase name="testGetConfig" classname="com.hc.weathermail.WeatherMailApplicationTests" time="0.208"/>
<testcase name="contextLoads" classname="com.hc.weathermail.WeatherMailApplicationTests" time="0.003"/>
<testcase name="testGetWeather" classname="com.hc.weathermail.WeatherMailApplicationTests" time="1.049"/>
</testsuite>
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
<facet type="web" name="Web">
<configuration>
<webroots />
<sourceRoots>
<root url="file://$MODULE_DIR$/src/main/java" />
<root url="file://$MODULE_DIR$/src/main/resources" />
</sourceRoots>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.5.2" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.14.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.14.1" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.31" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.28" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.5.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.12.3" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.12.3" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.12.3" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.12.3" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.12.3" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.12.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.48" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.48" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.48" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.20" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.5.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.4.7" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.31" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.19.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.7.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.7.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.7.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.7.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.7.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.7.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.9.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy:1.10.22" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.22" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:3.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:3.9.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.8" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.3.8" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.8.2" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.4.7" level="project" />
<orderEntry type="library" name="Maven: com.sun.mail:javax.mail:1.6.2" level="project" />
<orderEntry type="library" name="Maven: javax.activation:activation:1.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.5.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.8" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.6" level="project" />
<orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.10" level="project" />
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:30.1.1-jre" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" />
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
<orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.8.0" level="project" />
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.5.1" level="project" />
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
</component>
</module>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment