init project

This commit is contained in:
zhaoyong 2021-07-15 13:10:00 +08:00
parent 3357351481
commit 68940551f0
36 changed files with 1709 additions and 0 deletions

4
Dockerfile Normal file
View File

@ -0,0 +1,4 @@
FROM registry.cn-hangzhou.aliyuncs.com/axzo-k8s/jdk1.8-fc:v1
COPY .vimrc /root/
COPY oss-client/target/oss-client.jar ./oss-client.jar
ENTRYPOINT [{ENTRYPOINT}]

121
deployment.yaml Normal file
View File

@ -0,0 +1,121 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {ProjectName}
spec:
minReadySeconds: 2
replicas: 1
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
selector:
matchLabels:
app: {ProjectName}
template:
metadata:
labels:
app: {ProjectName}
prometheus: {PROMETHEUS}
logging: '{LOGGING}'
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: work
operator: In
values:
- {nodeSelector}
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- {ProjectName}
topologyKey: kubernetes.io/hostname
weight: 100
terminationGracePeriodSeconds: 60 ##k8s将会给应用发送SIGTERM信号可以用来正确、优雅地关闭应用,默认为30秒
containers:
- name: {ProjectName}
image: registry.cn-hangzhou.aliyuncs.com/axzo-k8s/{namespace}-{ProjectName}:{BUILD_ID}
imagePullPolicy: Always
livenessProbe: #该pod是存活的,不存活则需要重启
httpGet:
path: /checkDeath
port: {port}
scheme: HTTP
initialDelaySeconds: 60 ## equals to the maximum startup time of the application + couple of seconds
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 5
readinessProbe: #kubernetes认为该pod是启动成功的
httpGet:
path: /checkDeath
port: {port}
scheme: HTTP
initialDelaySeconds: 30 ## equals to minimum startup time of the application
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 5
volumeMounts:
- name: tz-config
mountPath: /etc/localtime
- name: jmx-exporter
mountPath: /data
env:
- name: NACOS_HOST
value: {NACOS_HOST}
- name: NACOS_PORT
value: "{NACOS_PORT}"
- name: NACOS_NAMESPACE_ID
value: {NACOS_NAMESPACE_ID}
- name: NACOS_PROFILES_ACTIVE
value: {NACOS_PROFILES_ACTIVE}
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: MY_POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
ports:
- containerPort: {port}
resources:
limits:
memory: {limitMemory}
requests:
memory: {requestsMemory}
imagePullSecrets:
- name: aliyun
volumes:
- name: tz-config
hostPath:
path: /usr/share/zoneinfo/Asia/Shanghai
- name: jmx-exporter
persistentVolumeClaim:
claimName: jmx
---
apiVersion: v1
kind: Service
metadata:
name: {ProjectName}
spec:
ports:
- name: tcp
port: {port}
clusterIP: None
selector:
app: {ProjectName}

View File

View File

@ -0,0 +1,19 @@
2021-07-15 13:07:21 ERROR --- [ main] org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter:
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class
Action:
Consider the following:
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).

View File

@ -0,0 +1,92 @@
2021-07-15 12:59:51 INFO --- [ main] com.alibaba.nacos.client.config.utils.JVMUtil: isMultiInstance:false
2021-07-15 12:59:51 INFO --- [ main] org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration: Located property source: [BootstrapPropertySource {name='bootstrapProperties-oss-local.yaml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-oss.yaml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-oss,DEFAULT_GROUP'}]
2021-07-15 12:59:51 INFO --- [ main] cn.axzo.oss.client.Bootstrap: The following profiles are active: local
2021-07-15 12:59:51 INFO --- [ main] org.springframework.cloud.context.scope.GenericScope: BeanFactory id=864de753-4a11-3c04-ba06-75cbf15945db
2021-07-15 12:59:51 INFO --- [ main] org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker: Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-07-15 12:59:52 INFO --- [ main] org.springframework.boot.web.embedded.tomcat.TomcatWebServer: Tomcat initialized with port(s): 9123 (http)
2021-07-15 12:59:52 INFO --- [ main] org.apache.coyote.http11.Http11NioProtocol: Initializing ProtocolHandler ["http-nio-9123"]
2021-07-15 12:59:52 INFO --- [ main] org.apache.catalina.core.StandardService: Starting service [Tomcat]
2021-07-15 12:59:52 INFO --- [ main] org.apache.catalina.core.StandardEngine: Starting Servlet engine: [Apache Tomcat/9.0.30]
2021-07-15 12:59:52 INFO --- [ main] org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/]: Initializing Spring embedded WebApplicationContext
2021-07-15 12:59:52 INFO --- [ main] org.springframework.web.context.ContextLoader: Root WebApplicationContext: initialization completed in 1220 ms
2021-07-15 12:59:52 INFO --- [ main] com.netflix.config.sources.URLConfigurationSource: To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
2021-07-15 12:59:52 INFO --- [ main] com.netflix.config.sources.URLConfigurationSource: To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
2021-07-15 12:59:52 INFO --- [ main] org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor: Initializing ExecutorService 'applicationTaskExecutor'
2021-07-15 12:59:53 INFO --- [ main] org.apache.coyote.http11.Http11NioProtocol: Starting ProtocolHandler ["http-nio-9123"]
2021-07-15 12:59:53 INFO --- [ main] org.springframework.boot.web.embedded.tomcat.TomcatWebServer: Tomcat started on port(s): 9123 (http) with context path ''
2021-07-15 12:59:53 INFO --- [ main] cn.axzo.oss.client.Bootstrap: Started Bootstrap in 3.862 seconds (JVM running for 4.46)
2021-07-15 12:59:53 INFO --- [ main] cn.axzo.oss.client.Bootstrap: axzo oss start success
2021-07-15 12:59:58 INFO --- [SpringContextShutdownHook] org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor: Shutting down ExecutorService 'applicationTaskExecutor'
2021-07-15 13:03:22 INFO --- [ main] com.alibaba.nacos.client.config.utils.JVMUtil: isMultiInstance:false
2021-07-15 13:03:22 INFO --- [ main] org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration: Located property source: [BootstrapPropertySource {name='bootstrapProperties-oss-local.yaml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-oss.yaml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-oss,DEFAULT_GROUP'}]
2021-07-15 13:03:22 INFO --- [ main] cn.axzo.oss.client.Bootstrap: The following profiles are active: local
2021-07-15 13:03:23 INFO --- [ main] org.springframework.cloud.context.scope.GenericScope: BeanFactory id=864de753-4a11-3c04-ba06-75cbf15945db
2021-07-15 13:03:23 INFO --- [ main] org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker: Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-07-15 13:03:23 INFO --- [ main] org.springframework.boot.web.embedded.tomcat.TomcatWebServer: Tomcat initialized with port(s): 9123 (http)
2021-07-15 13:03:23 INFO --- [ main] org.apache.coyote.http11.Http11NioProtocol: Initializing ProtocolHandler ["http-nio-9123"]
2021-07-15 13:03:23 INFO --- [ main] org.apache.catalina.core.StandardService: Starting service [Tomcat]
2021-07-15 13:03:23 INFO --- [ main] org.apache.catalina.core.StandardEngine: Starting Servlet engine: [Apache Tomcat/9.0.30]
2021-07-15 13:03:23 INFO --- [ main] org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/]: Initializing Spring embedded WebApplicationContext
2021-07-15 13:03:23 INFO --- [ main] org.springframework.web.context.ContextLoader: Root WebApplicationContext: initialization completed in 988 ms
2021-07-15 13:03:23 INFO --- [ main] com.netflix.config.sources.URLConfigurationSource: To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
2021-07-15 13:03:23 INFO --- [ main] com.netflix.config.sources.URLConfigurationSource: To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
2021-07-15 13:03:24 INFO --- [ main] org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor: Initializing ExecutorService 'applicationTaskExecutor'
2021-07-15 13:03:24 INFO --- [ main] org.apache.coyote.http11.Http11NioProtocol: Starting ProtocolHandler ["http-nio-9123"]
2021-07-15 13:03:24 INFO --- [ main] org.springframework.boot.web.embedded.tomcat.TomcatWebServer: Tomcat started on port(s): 9123 (http) with context path ''
2021-07-15 13:03:24 INFO --- [ main] cn.axzo.oss.client.Bootstrap: Started Bootstrap in 3.384 seconds (JVM running for 3.958)
2021-07-15 13:03:24 INFO --- [ main] cn.axzo.oss.client.Bootstrap: axzo oss start success
2021-07-15 13:07:19 INFO --- [ main] org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration: Located property source: [BootstrapPropertySource {name='bootstrapProperties-oss-dev.yaml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-oss.yaml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-oss,DEFAULT_GROUP'}]
2021-07-15 13:07:19 INFO --- [ main] cn.axzo.oss.client.Bootstrap: The following profiles are active: dev
2021-07-15 13:07:20 INFO --- [ main] org.springframework.cloud.context.scope.GenericScope: BeanFactory id=864de753-4a11-3c04-ba06-75cbf15945db
2021-07-15 13:07:20 INFO --- [ main] org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker: Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-07-15 13:07:20 INFO --- [ main] org.springframework.boot.web.embedded.tomcat.TomcatWebServer: Tomcat initialized with port(s): 8080 (http)
2021-07-15 13:07:20 INFO --- [ main] org.apache.coyote.http11.Http11NioProtocol: Initializing ProtocolHandler ["http-nio-8080"]
2021-07-15 13:07:20 INFO --- [ main] org.apache.catalina.core.StandardService: Starting service [Tomcat]
2021-07-15 13:07:20 INFO --- [ main] org.apache.catalina.core.StandardEngine: Starting Servlet engine: [Apache Tomcat/9.0.30]
2021-07-15 13:07:20 INFO --- [ main] org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/]: Initializing Spring embedded WebApplicationContext
2021-07-15 13:07:20 INFO --- [ main] org.springframework.web.context.ContextLoader: Root WebApplicationContext: initialization completed in 956 ms
2021-07-15 13:07:20 INFO --- [ main] com.netflix.config.sources.URLConfigurationSource: To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
2021-07-15 13:07:20 INFO --- [ main] com.netflix.config.sources.URLConfigurationSource: To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
2021-07-15 13:07:21 INFO --- [ main] org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor: Initializing ExecutorService 'applicationTaskExecutor'
2021-07-15 13:07:21 INFO --- [ main] org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor: Shutting down ExecutorService 'applicationTaskExecutor'
2021-07-15 13:07:21 INFO --- [ main] org.apache.catalina.core.StandardService: Stopping service [Tomcat]
2021-07-15 13:07:21 INFO --- [ main] org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener:
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-07-15 13:07:53 INFO --- [ main] com.alibaba.nacos.client.config.utils.JVMUtil: isMultiInstance:false
2021-07-15 13:07:53 INFO --- [ main] org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration: Located property source: [BootstrapPropertySource {name='bootstrapProperties-oss-local.yaml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-oss.yaml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-oss,DEFAULT_GROUP'}]
2021-07-15 13:07:53 INFO --- [ main] cn.axzo.oss.client.Bootstrap: The following profiles are active: local
2021-07-15 13:07:54 INFO --- [ main] org.springframework.cloud.context.scope.GenericScope: BeanFactory id=864de753-4a11-3c04-ba06-75cbf15945db
2021-07-15 13:07:54 INFO --- [ main] org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker: Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-07-15 13:07:54 INFO --- [ main] org.springframework.boot.web.embedded.tomcat.TomcatWebServer: Tomcat initialized with port(s): 9123 (http)
2021-07-15 13:07:54 INFO --- [ main] org.apache.coyote.http11.Http11NioProtocol: Initializing ProtocolHandler ["http-nio-9123"]
2021-07-15 13:07:54 INFO --- [ main] org.apache.catalina.core.StandardService: Starting service [Tomcat]
2021-07-15 13:07:54 INFO --- [ main] org.apache.catalina.core.StandardEngine: Starting Servlet engine: [Apache Tomcat/9.0.30]
2021-07-15 13:07:54 INFO --- [ main] org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/]: Initializing Spring embedded WebApplicationContext
2021-07-15 13:07:54 INFO --- [ main] org.springframework.web.context.ContextLoader: Root WebApplicationContext: initialization completed in 862 ms
2021-07-15 13:07:54 INFO --- [ main] com.netflix.config.sources.URLConfigurationSource: To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
2021-07-15 13:07:54 INFO --- [ main] com.netflix.config.sources.URLConfigurationSource: To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
2021-07-15 13:07:54 INFO --- [ main] org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor: Initializing ExecutorService 'applicationTaskExecutor'
2021-07-15 13:07:55 INFO --- [ main] org.apache.coyote.http11.Http11NioProtocol: Starting ProtocolHandler ["http-nio-9123"]
2021-07-15 13:07:55 INFO --- [ main] org.springframework.boot.web.embedded.tomcat.TomcatWebServer: Tomcat started on port(s): 9123 (http) with context path ''
2021-07-15 13:07:55 INFO --- [ main] cn.axzo.oss.client.Bootstrap: Started Bootstrap in 2.923 seconds (JVM running for 3.52)
2021-07-15 13:07:55 INFO --- [ main] cn.axzo.oss.client.Bootstrap: axzo oss start success
2021-07-15 13:08:16 INFO --- [SpringContextShutdownHook] org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor: Shutting down ExecutorService 'applicationTaskExecutor'
2021-07-15 13:08:27 INFO --- [ main] com.alibaba.nacos.client.config.utils.JVMUtil: isMultiInstance:false
2021-07-15 13:08:27 INFO --- [ main] org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration: Located property source: [BootstrapPropertySource {name='bootstrapProperties-oss-local.yaml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-oss.yaml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-oss,DEFAULT_GROUP'}]
2021-07-15 13:08:27 INFO --- [ main] cn.axzo.oss.client.Bootstrap: The following profiles are active: local
2021-07-15 13:08:27 INFO --- [ main] org.springframework.cloud.context.scope.GenericScope: BeanFactory id=864de753-4a11-3c04-ba06-75cbf15945db
2021-07-15 13:08:27 INFO --- [ main] org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker: Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-07-15 13:08:27 INFO --- [ main] org.springframework.boot.web.embedded.tomcat.TomcatWebServer: Tomcat initialized with port(s): 9123 (http)
2021-07-15 13:08:28 INFO --- [ main] org.apache.coyote.http11.Http11NioProtocol: Initializing ProtocolHandler ["http-nio-9123"]
2021-07-15 13:08:28 INFO --- [ main] org.apache.catalina.core.StandardService: Starting service [Tomcat]
2021-07-15 13:08:28 INFO --- [ main] org.apache.catalina.core.StandardEngine: Starting Servlet engine: [Apache Tomcat/9.0.30]
2021-07-15 13:08:28 INFO --- [ main] org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/]: Initializing Spring embedded WebApplicationContext
2021-07-15 13:08:28 INFO --- [ main] org.springframework.web.context.ContextLoader: Root WebApplicationContext: initialization completed in 1028 ms
2021-07-15 13:08:28 INFO --- [ main] com.netflix.config.sources.URLConfigurationSource: To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
2021-07-15 13:08:28 INFO --- [ main] com.netflix.config.sources.URLConfigurationSource: To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
2021-07-15 13:08:28 INFO --- [ main] org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor: Initializing ExecutorService 'applicationTaskExecutor'
2021-07-15 13:08:28 INFO --- [ main] org.apache.coyote.http11.Http11NioProtocol: Starting ProtocolHandler ["http-nio-9123"]
2021-07-15 13:08:28 INFO --- [ main] org.springframework.boot.web.embedded.tomcat.TomcatWebServer: Tomcat started on port(s): 9123 (http) with context path ''
2021-07-15 13:08:28 INFO --- [ main] cn.axzo.oss.client.Bootstrap: Started Bootstrap in 3.462 seconds (JVM running for 4.018)
2021-07-15 13:08:28 INFO --- [ main] cn.axzo.oss.client.Bootstrap: axzo oss start success

View File

@ -0,0 +1,27 @@
2021-07-15 12:59:50 WARN --- [ main] com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder: Ignore the empty nacos configuration and get it based on dataId[oss] & group[DEFAULT_GROUP]
2021-07-15 12:59:51 WARN --- [ main] com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder: Ignore the empty nacos configuration and get it based on dataId[oss.yaml] & group[DEFAULT_GROUP]
2021-07-15 12:59:51 WARN --- [ main] org.mybatis.spring.mapper.ClassPathMapperScanner: No MyBatis mapper was found in '[cn.axzo.oss.client]' package. Please check your configuration.
2021-07-15 12:59:52 WARN --- [ main] com.netflix.config.sources.URLConfigurationSource: No URLs will be polled as dynamic configuration sources.
2021-07-15 12:59:52 WARN --- [ main] com.netflix.config.sources.URLConfigurationSource: No URLs will be polled as dynamic configuration sources.
2021-07-15 13:03:22 WARN --- [ main] com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder: Ignore the empty nacos configuration and get it based on dataId[oss] & group[DEFAULT_GROUP]
2021-07-15 13:03:22 WARN --- [ main] com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder: Ignore the empty nacos configuration and get it based on dataId[oss.yaml] & group[DEFAULT_GROUP]
2021-07-15 13:03:23 WARN --- [ main] org.mybatis.spring.mapper.ClassPathMapperScanner: No MyBatis mapper was found in '[cn.axzo.oss.client]' package. Please check your configuration.
2021-07-15 13:03:23 WARN --- [ main] com.netflix.config.sources.URLConfigurationSource: No URLs will be polled as dynamic configuration sources.
2021-07-15 13:03:23 WARN --- [ main] com.netflix.config.sources.URLConfigurationSource: No URLs will be polled as dynamic configuration sources.
2021-07-15 13:07:19 WARN --- [ main] com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder: Ignore the empty nacos configuration and get it based on dataId[oss] & group[DEFAULT_GROUP]
2021-07-15 13:07:19 WARN --- [ main] com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder: Ignore the empty nacos configuration and get it based on dataId[oss.yaml] & group[DEFAULT_GROUP]
2021-07-15 13:07:19 WARN --- [ main] com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder: Ignore the empty nacos configuration and get it based on dataId[oss-dev.yaml] & group[DEFAULT_GROUP]
2021-07-15 13:07:20 WARN --- [ main] org.mybatis.spring.mapper.ClassPathMapperScanner: No MyBatis mapper was found in '[cn.axzo.oss.client]' package. Please check your configuration.
2021-07-15 13:07:20 WARN --- [ main] com.netflix.config.sources.URLConfigurationSource: No URLs will be polled as dynamic configuration sources.
2021-07-15 13:07:20 WARN --- [ main] com.netflix.config.sources.URLConfigurationSource: No URLs will be polled as dynamic configuration sources.
2021-07-15 13:07:21 WARN --- [ main] org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class
2021-07-15 13:07:53 WARN --- [ main] com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder: Ignore the empty nacos configuration and get it based on dataId[oss] & group[DEFAULT_GROUP]
2021-07-15 13:07:53 WARN --- [ main] com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder: Ignore the empty nacos configuration and get it based on dataId[oss.yaml] & group[DEFAULT_GROUP]
2021-07-15 13:07:54 WARN --- [ main] org.mybatis.spring.mapper.ClassPathMapperScanner: No MyBatis mapper was found in '[cn.axzo.oss.client]' package. Please check your configuration.
2021-07-15 13:07:54 WARN --- [ main] com.netflix.config.sources.URLConfigurationSource: No URLs will be polled as dynamic configuration sources.
2021-07-15 13:07:54 WARN --- [ main] com.netflix.config.sources.URLConfigurationSource: No URLs will be polled as dynamic configuration sources.
2021-07-15 13:08:26 WARN --- [ main] com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder: Ignore the empty nacos configuration and get it based on dataId[oss] & group[DEFAULT_GROUP]
2021-07-15 13:08:26 WARN --- [ main] com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder: Ignore the empty nacos configuration and get it based on dataId[oss.yaml] & group[DEFAULT_GROUP]
2021-07-15 13:08:27 WARN --- [ main] org.mybatis.spring.mapper.ClassPathMapperScanner: No MyBatis mapper was found in '[cn.axzo.oss.client]' package. Please check your configuration.
2021-07-15 13:08:28 WARN --- [ main] com.netflix.config.sources.URLConfigurationSource: No URLs will be polled as dynamic configuration sources.
2021-07-15 13:08:28 WARN --- [ main] com.netflix.config.sources.URLConfigurationSource: No URLs will be polled as dynamic configuration sources.

107
oss-client/pom.xml Normal file
View File

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>oss-client</artifactId>
<dependencies>
<dependency>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss-service</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<exclusions>
<exclusion>
<artifactId>guava</artifactId>
<groupId>com.google.guava</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
</dependency>
</dependencies>
<profiles>
<!--本地环境 -->
<profile>
<id>local</id>
<properties>
<activatedProperties>local</activatedProperties>
</properties>
</profile>
<!--开发环境 -->
<profile>
<id>dev</id>
<properties>
<activatedProperties>dev</activatedProperties>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!--测试环境 -->
<profile>
<id>test</id>
<properties>
<activatedProperties>test</activatedProperties>
</properties>
</profile>
<!--test1 环境 -->
<profile>
<id>test1</id>
<properties>
<activatedProperties>test1</activatedProperties>
</properties>
</profile>
<!--预发布环境 -->
<profile>
<id>pre</id>
<properties>
<activatedProperties>pre</activatedProperties>
</properties>
</profile>
<!--生产环境 -->
<profile>
<id>master</id>
<properties>
<activatedProperties>master</activatedProperties>
</properties>
</profile>
</profiles>
<build>
<finalName>oss-client</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,24 @@
package cn.axzo.oss.client;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* OSS 启动类
*
* @author zhaoyong
* @see Bootstrap
* @since 2021-07-15 11:34
*/
@Slf4j
@SpringBootApplication(scanBasePackages = {"cn.axzo.oss"})
public class Bootstrap {
public static void main(String[] args) {
log.info("axzo oss begin starting...");
SpringApplication.run(Bootstrap.class, args);
log.info("axzo oss start success");
}
}

View File

@ -0,0 +1,18 @@
spring:
application:
name: oss
cloud:
nacos:
config:
server-addr: ${NACOS_HOST:dev-nacos.axzo.cn}:${NACOS_PORT:80}
file-extension: yaml
namespace: ${NACOS_NAMESPACE_ID:35eada10-9574-4db8-9fea-bc6a4960b6c7}
prefix: ${spring.application.name}
profiles:
active: ${NACOS_PROFILES_ACTIVE:dev}
main:
allow-bean-definition-overriding: true
logging:
level:
com.alibaba.nacos.client.config.impl: WARN

View File

@ -0,0 +1,230 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<springProperty scope="context" name="appName" source="spring.application.name"/>
<!--根据实际类名修改-->
<define name="hostname" class="cn.azxo.framework.common.logger.logback.CanonicalHostNamePropertyDefiner"/>
<!--属性,此处根据实际服务名称修改-->
<property name="PROJECT_NAME" value="oss"/>
<!--日志路径-->
<property name="LOG_PATH" value="logs/${appName}/${hostname}"/>
<!-- 日志最大的历史 7天 -->
<property name="MAX_HISTORY" value="7"/>
<!--默认日志输出模式-->
<property name="LOG_PATTERN"
value="%date{yyyy-MM-dd HH:mm:ss} %green(${appName}) %highlight(%-5level) [%15thread] [%X{ctxLogId}] %cyan([%class{36}#%M:%L]) %n%msg%n"/>
<property name="FILE_LOG_PATTERN"
value="%date{yyyy-MM-dd HH:mm:ss} %-5level --- [%15thread] %logger: %msg%n"/>
<!--环境名-->
<contextName>${PROJECT_NAME}</contextName>
<!--错误日志-->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/error/error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/error/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!--每个文件的大小限制-->
<maxFileSize>30MB</maxFileSize>
<!--最多保留7天的文件7天之前的将被清除-->
<maxHistory>${MAX_HISTORY}</maxHistory>
<!--该滚动策略日志的总大小,超过的日志会被清除-->
<totalSizeCap>1GB</totalSizeCap>
<!--启动时清理日志文件 此项置灰清理超过保留天数的 也会清理超过总大小的-->
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<!-- 追加方式记录日志 -->
<append>true</append>
<!-- 日志文件的格式 -->
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>utf-8</charset>
</encoder>
<!-- 此日志文件记录error级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>error</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${LOG_PATH}/warn/warn.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/warn/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!--每个文件的大小限制-->
<maxFileSize>30MB</maxFileSize>
<!--最多保留7天的文件7天之前的将被清除-->
<maxHistory>${MAX_HISTORY}</maxHistory>
<!--该滚动策略日志的总大小,超过的日志会被清除-->
<totalSizeCap>1GB</totalSizeCap>
<!--启动时清理日志文件 此项置灰清理超过保留天数的 也会清理超过总大小的-->
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<!-- 追加方式记录日志 -->
<append>true</append>
<!-- 日志文件的格式 -->
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>utf-8</charset>
</encoder>
<!-- 此日志文件记录error级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>warn</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${LOG_PATH}/info/info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/info/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!--每个文件的大小限制-->
<maxFileSize>30MB</maxFileSize>
<!--最多保留7天的文件7天之前的将被清除-->
<maxHistory>${MAX_HISTORY}</maxHistory>
<!--该滚动策略日志的总大小,超过的日志会被清除-->
<totalSizeCap>1GB</totalSizeCap>
<!--启动时清理日志文件 此项置灰清理超过保留天数的 也会清理超过总大小的-->
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<!-- 追加方式记录日志 -->
<append>true</append>
<!-- 日志文件的格式 -->
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>utf-8</charset>
</encoder>
<!-- 此日志文件记录error级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${LOG_PATH}/debug/debug.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/debug/debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!--每个文件的大小限制-->
<maxFileSize>30MB</maxFileSize>
<!--最多保留7天的文件7天之前的将被清除-->
<maxHistory>${MAX_HISTORY}</maxHistory>
<!--该滚动策略日志的总大小,超过的日志会被清除-->
<totalSizeCap>1GB</totalSizeCap>
<!--启动时清理日志文件 此项置灰清理超过保留天数的 也会清理超过总大小的-->
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<!-- 追加方式记录日志 -->
<append>true</append>
<!-- 日志文件的格式 -->
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>utf-8</charset>
</encoder>
<!-- 此日志文件记录error级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>debug</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- ConsoleAppender 控制台输出日志 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender" addtivity="false">
<encoder>
<pattern>${LOG_PATTERN}</pattern>
<charset>utf-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>info</level>
</filter>
</appender>
<!-- ConsoleAppender 控制台输出日志 -->
<appender name="JSON_STDOUT" class="ch.qos.logback.core.ConsoleAppender" addtivity="false">
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<timestamp>
<fieldName>@timestamp</fieldName>
<pattern>yyyy-MM-dd'T'HH:mm:ss.SSSx</pattern>
<timeZone>GMT+8</timeZone>
</timestamp>
<pattern>
<pattern>
{
"app":"${appName}",
"traceId":"%X{ctxLogId}",
"level":"%level",
"thread":"%thread",
"coordinate":"%class{36}#%M:%L",
"message":"%message",
"m":"#asJson{%message}",
"stack_trace":"%exception{20}"
}
</pattern>
</pattern>
</providers>
</encoder>
</appender>
<!-- 接入了skywalking才配置该项 -->
<appender name="SKYWALKING_LOG" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
<Pattern>${LOG_PATTERN}</Pattern>
</layout>
</encoder>
</appender>
<springProfile name="local">
<root level="info">
<appender-ref ref="ERROR"/>
<appender-ref ref="WARN"/>
<appender-ref ref="INFO"/>
<appender-ref ref="DEBUG"/>
<appender-ref ref="STDOUT"/>
</root>
</springProfile>
<springProfile name="dev">
<root level="info">
<appender-ref ref="ERROR"/>
<appender-ref ref="WARN"/>
<appender-ref ref="INFO"/>
<appender-ref ref="DEBUG"/>
<appender-ref ref="STDOUT"/>
</root>
</springProfile>
<springProfile name="test">
<root level="info">
<appender-ref ref="ERROR"/>
<appender-ref ref="WARN"/>
<appender-ref ref="INFO"/>
<appender-ref ref="DEBUG"/>
<appender-ref ref="STDOUT"/>
</root>
</springProfile>
<springProfile name="pre">
<root level="debug">
<appender-ref ref="ERROR"/>
<appender-ref ref="WARN"/>
<appender-ref ref="INFO"/>
<appender-ref ref="DEBUG"/>
<appender-ref ref="STDOUT"/>
</root>
</springProfile>
<springProfile name="master">
<root level="INFO">
<!-- 接入了skywalking才配置该项 -->
<appender-ref ref="SKYWALKING_LOG"/>
<appender-ref ref="JSON_STDOUT"/>
</root>
</springProfile>
</configuration>

88
oss-common/pom.xml Normal file
View File

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>oss-common</artifactId>
<dependencies>
<dependency>
<groupId>cn.axzo.framework</groupId>
<artifactId>common-common</artifactId>
</dependency>
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
</dependency>
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
</dependency>
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,11 @@
package cn.axzo.oss.common.constans;
/**
* 通用常量类
*
* @author zhaoyong
* @see CommonConstants
* @since 2021-07-15 11:45
*/
public abstract class CommonConstants {
}

View File

@ -0,0 +1,24 @@
package cn.axzo.oss.common.enums;
/**
* 枚举接口
*
* @author zhaoyong
* @see EnumBase
* @since 2021-04-01 14:34
*/
public interface EnumBase<T> {
/**
* 获取映射码
* @return
*/
T getCode();
/**
* 获取描述信息
* @return
*/
String getMessage();
}

View File

@ -0,0 +1,32 @@
package cn.axzo.oss.common.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
* 逻辑删除枚举
*
* @author zhaoyong
* @see IsDeleteEnum
* @since 2021-04-01 15:46
*/
@Getter
@RequiredArgsConstructor
public enum IsDeleteEnum implements EnumBase<Integer> {
/**
* 未删除
*/
NO(0, "未删除"),
/**
* 已删除
*/
YES(1, "已删除"),
;
private final Integer code;
private final String message;
}

58
oss-dal/pom.xml Normal file
View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>oss-dal</artifactId>
<dependencies>
<dependency>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,8 @@
/**
* 包信息
*
* @author zhaoyong
* @see package-info
* @since 2021-07-15 12:54
*/
package cn.axzo.oss.dal;

67
oss-http-api/pom.xml Normal file
View File

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss</artifactId>
<version>${revision}</version>
</parent>
<artifactId>oss-http-api</artifactId>
<dependencies>
<dependency>
<groupId>cn.axzo.framework</groupId>
<artifactId>common-common</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-openfeign-core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,52 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.myfaces.blank;
/**
* A typical simple backing bean, that is backed to <code>helloworld.jsp</code>
*
*/
public class HelloWorldController {
//properties
private String name;
/**
* default empty constructor
*/
public HelloWorldController(){
}
//-------------------getter & setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/**
* Method that is backed to a submit button of a form.
*/
public String send(){
//do real logic, return a string which will be used for the navigation system of JSF
return "success";
}
}

View File

@ -0,0 +1,33 @@
<?xml version="1.0"?>
<faces-config version="1.2"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
<!-- managed beans of the simple hello world app -->
<managed-bean>
<managed-bean-name>helloWorld</managed-bean-name>
<managed-bean-class>org.apache.myfaces.blank.HelloWorldController</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<!-- navigation rules for helloWorld.jsp -->
<navigation-rule>
<from-view-id>/helloWorld.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/page2.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<!-- navigation rules for page2.jsp -->
<navigation-rule>
<from-view-id>/page2.jsp</from-view-id>
<navigation-case>
<from-outcome>back</from-outcome>
<to-view-id>/helloWorld.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>

View File

@ -0,0 +1,218 @@
<?xml version="1.0"?>
<!--
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
-->
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<description>MyProject web.xml</description>
<!--optional: context-param>
<description>Comma separated list of URIs of (additional) faces config files.
(e.g. /WEB-INF/my-config.xml)
See JSF 1.0 PRD2, 10.3.2
Attention: You do not need to put /WEB-INF/faces-config.xml in here.
</description>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/examples-config.xml</param-value>
</context-param-->
<context-param>
<description>State saving method: "client" or "server" (= default)
See JSF Specification 2.5.3</description>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<description>Only applicable if state saving method is "server" (= default).
Defines the amount (default = 20) of the latest views are stored in session.</description>
<param-name>org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION</param-name>
<param-value>20</param-value>
</context-param>
<context-param>
<description>Only applicable if state saving method is "server" (= default).
If true (default) the state will be serialized to a byte stream before it
is written to the session.
If false the state will not be serialized to a byte stream.</description>
<param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<description>Only applicable if state saving method is "server" (= default) and if
org.apache.myfaces.SERIALIZE_STATE_IN_SESSION is true (= default)
If true (default) the serialized state will be compressed before it
is written to the session. If false the state will not be compressed.</description>
<param-name>org.apache.myfaces.COMPRESS_STATE_IN_SESSION</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<description>This parameter tells MyFaces if javascript code should be allowed in the
rendered HTML output.
If javascript is allowed, command_link anchors will have javascript code
that submits the corresponding form.
If javascript is not allowed, the state saving info and nested parameters
will be added as url parameters.
Default: "true"</description>
<param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<description>If true, rendered HTML code will be formatted, so that it is "human readable".
i.e. additional line separators and whitespace will be written, that do not
influence the HTML code.
Default: "true"</description>
<param-name>org.apache.myfaces.PRETTY_HTML</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<description>If true, a javascript function will be rendered that is able to restore the
former vertical scroll on every request. Convenient feature if you have pages
with long lists and you do not want the browser page to always jump to the top
if you trigger a link or button action that stays on the same page.
Default: "false"</description>
<param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<description>Used for encrypting view state. Only relevant for client side
state saving. See MyFaces wiki/web site documentation for instructions
on how to configure an application for diffenent encryption strengths.
</description>
<param-name>org.apache.myfaces.SECRET</param-name>
<param-value>NzY1NDMyMTA=</param-value>
</context-param>
<context-param>
<description>
Validate managed beans, navigation rules and ensure that forms are not nested.
</description>
<param-name>org.apache.myfaces.VALIDATE</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<description>
Treat readonly same as if disabled attribute was set for select elements.
</description>
<param-name>org.apache.myfaces.READONLY_AS_DISABLED_FOR_SELECTS</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<description>
Use the defined class as the class which will be called when a resource is added to the
ExtensionFilter handling. Using StreamingAddResource here helps with performance. If you want to add
custom components and want to use the ExtensionFilter, you need to provide your custom implementation here.
</description>
<param-name>org.apache.myfaces.ADD_RESOURCE_CLASS</param-name>
<param-value>org.apache.myfaces.renderkit.html.util.DefaultAddResource</param-value>
</context-param>
<context-param>
<description>
Virtual path in the URL which triggers loading of resources for the MyFaces extended components
in the ExtensionFilter.
</description>
<param-name>org.apache.myfaces.RESOURCE_VIRTUAL_PATH</param-name>
<param-value>/faces/myFacesExtensionResource</param-value>
</context-param>
<context-param>
<description>
Check if the extensions-filter has been properly configured.
</description>
<param-name>org.apache.myfaces.CHECK_EXTENSIONS_FILTER</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<description>
Define partial state saving as true/false.
</description>
<param-name>javax.faces.PARTIAL_STATE_SAVING_METHOD</param-name>
<param-value>false</param-value>
</context-param>
<!-- Extensions Filter -->
<filter>
<filter-name>extensionsFilter</filter-name>
<filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
<init-param>
<description>Set the size limit for uploaded files.
Format: 10 - 10 bytes
10k - 10 KB
10m - 10 MB
1g - 1 GB</description>
<param-name>uploadMaxFileSize</param-name>
<param-value>100m</param-value>
</init-param>
<init-param>
<description>Set the threshold size - files
below this limit are stored in memory, files above
this limit are stored on disk.
Format: 10 - 10 bytes
10k - 10 KB
10m - 10 MB
1g - 1 GB</description>
<param-name>uploadThresholdSize</param-name>
<param-value>100k</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>extensionsFilter</filter-name>
<url-pattern>*.jsf</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>extensionsFilter</filter-name>
<url-pattern>/faces/*</url-pattern>
</filter-mapping>
<!-- Listener, to allow Jetty serving MyFaces apps -->
<listener>
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>
<!-- Faces Servlet -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Faces Servlet Mapping -->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<!-- Welcome files -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>

View File

@ -0,0 +1,19 @@
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<f:view>
<h:form id="mainForm">
<h:panelGrid columns="2">
<h:outputLabel for="name" value="Please enter your name" />
<h:inputText id="name" value="#{helloWorld.name}" required="true"/>
<h:commandButton value="Press me" action="#{helloWorld.send}"/>
<h:messages showDetail="true" showSummary="false"/>
</h:panelGrid>
</h:form>
</f:view>
</body>
</html>

View File

@ -0,0 +1,4 @@
<%@ page session="false"%>
<%
response.sendRedirect("helloWorld.jsf");
%>

View File

@ -0,0 +1,17 @@
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<f:view>
<h:form id="mainForm">
<h2><h:outputText value="Hello #{helloWorld.name}. We hope you enjoy Apache MyFaces"/></h2>
<h:commandLink action="back">
<h:outputText value="Home"/>
</h:commandLink>
</h:form>
</f:view>
</body>
</html>

37
oss-integration/pom.xml Normal file
View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>oss-integration</artifactId>
<dependencies>
<dependency>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,8 @@
/**
* 包信息
*
* @author zhaoyong
* @see package-info
* @since 2021-07-15 12:54
*/
package cn.axzo.oss.integration;

37
oss-manager-api/pom.xml Normal file
View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>oss-manager-api</artifactId>
<dependencies>
<dependency>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss-dal</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,8 @@
/**
* 包信息
*
* @author zhaoyong
* @see package-info
* @since 2021-07-15 12:54
*/
package cn.axzo.oss.manager.api;

42
oss-manager/pom.xml Normal file
View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>oss-manager</artifactId>
<dependencies>
<dependency>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss-dal</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss-manager-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss-integration</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,8 @@
/**
* 包信息
*
* @author zhaoyong
* @see package-info
* @since 2021-07-15 12:54
*/
package cn.axzo.oss.manager.impl;

37
oss-service-api/pom.xml Normal file
View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>oss-service-api</artifactId>
<dependencies>
<dependency>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss-manager-api</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,8 @@
/**
* 包信息
*
* @author zhaoyong
* @see package-info
* @since 2021-07-15 12:55
*/
package cn.axzo.oss.service.api;

37
oss-service/pom.xml Normal file
View File

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>oss-service</artifactId>
<dependencies>
<dependency>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss-service-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss-manager</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,8 @@
/**
* 包信息
*
* @author zhaoyong
* @see package-info
* @since 2021-07-15 12:55
*/
package cn.axzo.oss.service.impl;

36
oss-test/pom.xml Normal file
View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>oss-test</artifactId>
<dependencies>
<dependency>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss-client</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,8 @@
/**
* 包信息
*
* @author zhaoyong
* @see package-info
* @since 2021-07-15 12:55
*/
package cn.axzo.oss.test;

162
pom.xml Normal file
View File

@ -0,0 +1,162 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>cn.axzo.oss</groupId>
<artifactId>oss</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<properties>
<!-- axzo jar -->
<common-common.version>1.0.6</common-common.version>
<apm-toolkit.version>8.5.0</apm-toolkit.version>
<!--project version-->
<revision>1.0.0</revision>
<!-- tools -->
<commons-collections4.version>4.4</commons-collections4.version>
<commons-lang3.version>3.5</commons-lang3.version>
<hutool-all.version>5.5.7</hutool-all.version>
<logstash-logback-encoder.version>6.1</logstash-logback-encoder.version>
<xxl.job.version>2.2.0</xxl.job.version>
<redisson.version>3.13.2</redisson.version>
<fastjson.version>1.2.47</fastjson.version>
<joda-time.version>2.10.6</joda-time.version>
<javax.validation.version>2.0.0.Final</javax.validation.version>
<hibernate.validator.version>6.0.16.Final</hibernate.validator.version>
<http.client.version>4.5.6</http.client.version>
<mybatis-plus.version>3.3.2</mybatis-plus.version>
<velocity-engine-core.version>2.0</velocity-engine-core.version>
<spring-cloud-alibaba.version>2.2.1.RELEASE</spring-cloud-alibaba.version>
<spring-cloud.version>Hoxton.SR6</spring-cloud.version>
</properties>
<modules>
<module>oss-client</module>
<module>oss-common</module>
<module>oss-dal</module>
<module>oss-integration</module>
<module>oss-manager</module>
<module>oss-manager-api</module>
<module>oss-service</module>
<module>oss-service-api</module>
<module>oss-test</module>
<module>oss-http-api</module>
</modules>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>cn.axzo.framework</groupId>
<artifactId>common-common</artifactId>
<version>${common-common.version}</version>
</dependency>
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>${apm-toolkit.version}</version>
</dependency>
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>${apm-toolkit.version}</version>
</dependency>
<!-- spring cloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- database -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<!-- tool -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${joda-time.version}</version>
</dependency>
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>${logstash-logback-encoder.version}</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>${javax.validation.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${hibernate.validator.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${http.client.version}</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool-all.version}</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>${velocity-engine-core.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>${commons-collections4.version}</version>
</dependency>
<!-- middleware -->
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>${redisson.version}</version>
</dependency>
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>${xxl.job.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>