first commit

v1.4.1
Parker 5 years ago
commit 8b53505af0

31
.gitignore vendored

@ -0,0 +1,31 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/

@ -0,0 +1,5 @@
## opsli 快速开发平台

@ -0,0 +1,8 @@
## opsli 公共模块
1. core 核心
2. utils 工具类
3. api 统一RestFul返回API
4. base 基础类
5. conf 配置类
6. constant 常量类
7. excption 异常类

@ -0,0 +1,16 @@
<?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">
<parent>
<artifactId>opsli-boot-parent</artifactId>
<groupId>org.opsliframework.boot</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>opsli-common</artifactId>
<version>${project.parent.version}</version>
</project>

@ -0,0 +1,107 @@
package org.opsli.common.conf;
import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrapUI;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @Author parker
*
* swagger
*/
@Slf4j
@Configuration
@EnableSwagger2
@EnableSwaggerBootstrapUI
@ConditionalOnProperty(name = "swagger.enable", havingValue = "true")
public class SwaggerConfig implements WebMvcConfigurer {
/**
*
* swagger-ui.htmlswagger
*
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
/**
* swagger2swagger2
*
* @return Docket
*/
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//此包路径下的类,才生成接口文档
.apis(RequestHandlerSelectors.basePackage("org.opsli.modulars"))
//加了ApiOperation注解的类才生成接口文档
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
//.securitySchemes(Collections.singletonList(securityScheme()));
//.globalOperationParameters(setHeaderToken());
}
/***
* oauth2
* swagger
* http://localhost:8888/webjars/springfox-swagger-ui/o2c.html
* @return
*/
// @Bean
// SecurityScheme securityScheme() {
// return new ApiKey(DefContants.X_ACCESS_TOKEN, DefContants.X_ACCESS_TOKEN, "header");
// }
/**
* JWT token
* @return
*/
// private List<Parameter> setHeaderToken() {
// ParameterBuilder tokenPar = new ParameterBuilder();
// List<Parameter> pars = new ArrayList<>();
// tokenPar.name(DefContants.X_ACCESS_TOKEN).description("token").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
// pars.add(tokenPar.build());
// return pars;
// }
/**
* api,
*
* @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
// //大标题
.title("Opsli-Boot 后台服务API接口文档")
// 版本号
.version("1.0")
// .termsOfServiceUrl("NO terms of service")
// 描述
.description("后台API接口")
// 作者
.contact("Parker")
.license("The Apache License, Version 2.0")
.licenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html")
.build();
}
}

@ -0,0 +1,43 @@
package org.opsli.common.print;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.env.Environment;
import java.net.InetAddress;
import java.net.UnknownHostException;
/**
* @BelongsProject: opsli-boot
* @BelongsPackage: org.opsli.core.print
* @Author: Parker
* @CreateTime: 2020-09-12 17:54
* @Description:
*/
@Slf4j
public enum StartPrint {
/** 实例对象 */
INSTANCE;
/**
*
*/
public void print(Environment env){
String ip = "localhost";
try {
ip = InetAddress.getLocalHost().getHostAddress();
}catch (UnknownHostException e){
log.error("网卡IP 获得失败");
}
String port = env.getProperty("server.port");
String path = env.getProperty("server.servlet.context-path");
log.info("\n----------------------------------------------------------\n\t" +
"Application opsli-boot is running! Access URLs:\n\t" +
"Local: \t\thttp://" + ip + ":" + port + path + "/\n\t" +
"External: \thttp://" + ip + ":" + port + path + "/\n\t" +
"swagger-ui: \thttp://" + ip + ":" + port + path + "/swagger-ui.html\n\t" +
"Doc: \t\thttp://" + ip + ":" + port + path + "/doc.html\n" +
"----------------------------------------------------------");
}
}

@ -0,0 +1,10 @@
${AnsiColor.GREEN} ____ ____ ${AnsiColor.CYAN}_____ __ ____
${AnsiColor.GREEN} / __ \ / __ \ ${AnsiColor.CYAN}/ ___/ / / / _/
${AnsiColor.GREEN} / / / / / /_/ / ${AnsiColor.CYAN}\__ \ / / / /
${AnsiColor.GREEN}/ /_/ / / ____/ ${AnsiColor.CYAN}___/ / / /___ _/ /
${AnsiColor.GREEN}\____/ /_/ ${AnsiColor.CYAN}/____/ /_____//___/
${AnsiColor.BRIGHT_BLUE}:: opsli :: Running Spring Boot ${spring-boot.version} ::
:: https://www.opsli.com ::${AnsiColor.DEFAULT}

@ -0,0 +1,4 @@
## opsli 业务模块
> 可扩展业务模块

@ -0,0 +1,16 @@
<?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">
<parent>
<groupId>org.opsliframework.boot</groupId>
<artifactId>opsli-boot-parent</artifactId>
<version>1.0.0</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>opsli-modulars-test</artifactId>
<version>${project.parent.version}</version>
</project>

@ -0,0 +1,5 @@
## opsli 插件类
1. mail 邮件插件

@ -0,0 +1,16 @@
<?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">
<parent>
<artifactId>opsli-boot-parent</artifactId>
<groupId>org.opsliframework.boot</groupId>
<version>1.0.0</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>opsli-plugins-mail</artifactId>
<version>${project.parent.version}</version>
</project>

@ -0,0 +1,22 @@
package org.opsli.plugins.mail;
/**
* @BelongsProject: opsli-boot
* @BelongsPackage: org.opsli.plugins.mail
* @Author: Parker
* @CreateTime: 2020-09-12 22:51
* @Description:
*/
public enum MailUtil {
/** 实例*/
INSTANCE;
/**
*
*/
public void send(){
}
}

@ -0,0 +1,6 @@
## opsli 核心启动类
> 需要启动、打包、发布的模块都需要添加到opsli-web的依赖中opsli-web下运行install打包发布时该模块不会被打进jar中。

@ -0,0 +1,52 @@
<?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">
<parent>
<artifactId>opsli-boot-parent</artifactId>
<groupId>org.opsliframework.boot</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>opsli-web</artifactId>
<version>${project.parent.version}</version>
<dependencies>
<!-- 引入公用模块 -->
<dependency>
<groupId>org.opsliframework.boot</groupId>
<artifactId>opsli-common</artifactId>
<version>${project.parent.version}</version>
</dependency>
<!-- 引入插件模块 -->
<dependency>
<groupId>org.opsliframework.boot</groupId>
<artifactId>opsli-plugins-mail</artifactId>
<version>${project.parent.version}</version>
</dependency>
<!-- 引入子模块 -->
<!-- 注:业务自模块需要 在 web 里引入,否则打包不会加入 -->
<dependency>
<groupId>org.opsliframework.boot</groupId>
<artifactId>opsli-modulars-test</artifactId>
<version>${project.parent.version}</version>
</dependency>
</dependencies>
<!-- 编译环境 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

@ -0,0 +1,22 @@
package org.opsli;
import org.opsli.common.print.StartPrint;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.ConfigurableApplicationContext;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@EnableSwagger2
@SpringBootApplication()
public class OpsliApplication {
public static void main(String[] args){
ConfigurableApplicationContext application = SpringApplication.run(OpsliApplication.class, args);
// 打印启动日志
StartPrint.INSTANCE.print(application.getEnvironment());
}
}

@ -0,0 +1,103 @@
## ---- 测试环境 ---- ##
# 端口设置
server:
port: 91
spring:
# 邮件设置
mail:
host: smtp.qq.com
username: meet.parker@foxmail.com
password: ??
properties:
mail:
smpt:
auth: true
starttls:
enable: true
required: true
# ## quartz定时任务,采用数据库方式
# quartz:
# job-store-type: jdbc
#redis 配置
redis:
database: 0
host: 127.0.0.1
lettuce:
pool:
max-active: 8 #最大连接数据库连接数,设 0 为没有限制
max-idle: 8 #最大等待连接中的数量,设 0 为没有限制
max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
min-idle: 0 #最小等待连接中的数量,设 0 为没有限制
shutdown-timeout: 100ms
password: '123456'
port: 6379
# 数据库配置
datasource:
# 数据库连接池监控
druid:
stat-view-servlet:
# 数据库监控开关
enabled: true
# 登录用户名/密码
login-username: admin
login-password: 123456
# IP 白名单,没有配置或者为空,则允许所有访问
allow:
# IP 黑名单,若白名单也存在,则优先使用
deny:
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: .js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*
# 多数据源
dynamic:
druid:
# 连接池的配置信息
# 初始化大小,最小,最大
initial-size: 5
min-idle: 5
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打开PSCache并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
# 配置监控统计拦截的 Filter去掉后监控界面 SQL 无法统计wall 用于防火墙
filters: stat,wall,slf4j
# 通过connectProperties属性来打开mergeSql功能慢SQL记录
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
datasource:
master:
url: jdbc:mysql://127.0.0.1:3306/opsli-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false
username: root
password: 12345678
driver-class-name: com.mysql.jdbc.Driver
# 多数据源配置
#multi-datasource1:
#url: jdbc:mysql://localhost:3306/opsli-boot?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true
#username: root
#password: root
#driver-class-name: com.mysql.jdbc.Driver
#Mybatis输出sql日志
logging:
level:
org.opsli.modulars.system.mapper : debug
# swagger 配置
swagger:
production: true

@ -0,0 +1,104 @@
## ---- 开发环境 ---- ##
# 端口设置
server:
port: 8080
spring:
# 邮件设置
mail:
host: smtp.qq.com
username: meet.parker@foxmail.com
password: pamjnijkjkqdbbea
properties:
mail:
smpt:
auth: true
starttls:
enable: true
required: true
# ## quartz定时任务,采用数据库方式
# quartz:
# job-store-type: jdbc
#redis 配置
redis:
database: 0
host: 127.0.0.1
lettuce:
pool:
max-active: 8 #最大连接数据库连接数,设 0 为没有限制
max-idle: 8 #最大等待连接中的数量,设 0 为没有限制
max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
min-idle: 0 #最小等待连接中的数量,设 0 为没有限制
shutdown-timeout: 100ms
password: '123456'
port: 6379
# 数据库配置
datasource:
# 数据库连接池监控
druid:
stat-view-servlet:
# 数据库监控开关
enabled: true
# 登录用户名/密码
login-username: admin
login-password: 123456
# IP 白名单,没有配置或者为空,则允许所有访问
allow:
# IP 黑名单,若白名单也存在,则优先使用
deny:
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: .js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*
# 多数据源
dynamic:
druid:
# 连接池的配置信息
# 初始化大小,最小,最大
initial-size: 5
min-idle: 5
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打开PSCache并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
# 配置监控统计拦截的 Filter去掉后监控界面 SQL 无法统计wall 用于防火墙
filters: stat,wall,slf4j
# 通过connectProperties属性来打开mergeSql功能慢SQL记录
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
#主数据源
#设置默认的数据源或者数据源组,默认值即为master,如果你主从默认下主库的名称就是master可不定义此项。
#primary: master
datasource:
master:
url: jdbc:mysql://127.0.0.1:3306/opsli-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false
username: root
password: 12345678
driver-class-name: com.mysql.jdbc.Driver
# 多数据源配置
#multi-datasource1:
#url: jdbc:mysql://localhost:3306/opsli-boot?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true
#username: root
#password: 12345678
#driver-class-name: com.mysql.jdbc.Driver
#Mybatis输出sql日志
logging:
level:
org.opsli.modulars.system.mapper : debug
# swagger 配置
swagger:
production: false

@ -0,0 +1,103 @@
## ---- 正式环境 ---- ##
# 端口设置
server:
port: 81
spring:
# 邮件设置
mail:
host: smtp.qq.com
username: meet.parker@foxmail.com
password: ??
properties:
mail:
smpt:
auth: true
starttls:
enable: true
required: true
# ## quartz定时任务,采用数据库方式
# quartz:
# job-store-type: jdbc
#redis 配置
redis:
database: 0
host: 127.0.0.1
lettuce:
pool:
max-active: 8 #最大连接数据库连接数,设 0 为没有限制
max-idle: 8 #最大等待连接中的数量,设 0 为没有限制
max-wait: -1ms #最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
min-idle: 0 #最小等待连接中的数量,设 0 为没有限制
shutdown-timeout: 100ms
password: '123456'
port: 6379
# 数据库配置
datasource:
# 数据库连接池监控
druid:
stat-view-servlet:
# 数据库监控开关
enabled: true
# 登录用户名/密码
login-username: admin
login-password: SQL!@#0p9o8i7u
# IP 白名单,没有配置或者为空,则允许所有访问
allow:
# IP 黑名单,若白名单也存在,则优先使用
deny:
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: .js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*
# 多数据源
dynamic:
druid:
# 连接池的配置信息
# 初始化大小,最小,最大
initial-size: 5
min-idle: 5
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打开PSCache并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
# 配置监控统计拦截的 Filter去掉后监控界面 SQL 无法统计wall 用于防火墙
filters: stat,wall,slf4j
# 通过connectProperties属性来打开mergeSql功能慢SQL记录
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
datasource:
master:
url: jdbc:mysql://127.0.0.1:3306/opsli-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false
username: root
password: 12345678
driver-class-name: com.mysql.jdbc.Driver
# 多数据源配置
#multi-datasource1:
#url: jdbc:mysql://localhost:3306/opsli-boot?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true
#username: root
#password: root
#driver-class-name: com.mysql.jdbc.Driver
#Mybatis输出sql日志
logging:
level:
org.opsli.modulars.system.mapper : debug
# swagger 配置
swagger:
production: true

@ -0,0 +1,54 @@
# tomcat 配置
server:
tomcat:
max-swallow-size: -1
servlet:
context-path: /opsli-boot
compression:
enabled: true
min-response-size: 1024
mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/*
# actuator 暴露端点
management:
endpoints:
web:
exposure:
include: metrics,httptrace
#mybatis plus 设置
mybatis-plus:
mapper-locations: classpath*:org/opsli/modulars/**/xml/*Mapper.xml
global-config:
# 关闭MP3.0自带的banner
banner: false
db-config:
#主键类型 0:"数据库ID自增",1:"该类型为未设置主键类型", 2:"用户输入ID",3:"全局唯一ID (数字类型唯一ID)", 4:"全局唯一ID UUID",5:"字符串全局唯一ID (idWorker 的字符串表示)";
id-type: 4
# 默认数据库表下划线命名
table-underline: true
configuration:
# 这个配置会将执行的sql打印出来在开发或测试的时候可以用
#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 返回类型为Map,显示null对应的字段
call-setters-on-nulls: true
spring:
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
#json 时间戳统一转换
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
#开启aop
aop:
proxy-target-class: true
# 自动注入
autoconfigure:
exclude:
- com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
profiles:
#此处由maven的环境选择决定
active: "@spring.active@"

@ -0,0 +1,401 @@
<?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">
<!--项目的名称, Maven产生的文档用 -->
<name>opsli-boot-parent</name>
<!--项目主页的URL, Maven产生的文档用 -->
<url>https://www.opsli.com</url>
<!-- 描述 -->
<description>一个基于springboot、vue、ant design、集成代码生成器的Java开源快速开发框架微服务平台。</description>
<!--项目开发者列表 -->
<developers>
<!--项目开发者的信息 -->
<developer>
<!--SCM里项目开发者的唯一标识符 -->
<id>parker</id>
<!--项目开发者的全名 -->
<name>Parker Chou</name>
<!--项目开发者的email -->
<email>meet.parker@foxmail.com</email>
<!--项目开发者的主页的URL -->
<url>https://www.opsli.com</url>
<!--项目开发者在项目中扮演的角色,角色元素描述了各种角色 -->
<roles>
<role>Project Manager</role>
<role>Architect</role>
</roles>
<!--项目开发者所属组织 -->
<organization>personal</organization>
</developer>
</developers>
<!-- 父节点 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- opsli-boot-parent 信息 -->
<modelVersion>4.0.0</modelVersion>
<groupId>org.opsliframework.boot</groupId>
<artifactId>opsli-boot-parent</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<!-- 引入 modules -->
<modules>
<module>opsli-web</module>
<module>opsli-common</module>
<module>opsli-modulars/opsli-modulars-test</module>
<module>opsli-plugins/opsli-plugins-mail</module>
</modules>
<!-- 全局版本 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-boot.version>2.3.0.RELEASE</spring-boot.version>
<fastjson.version>1.2.73</fastjson.version>
<mybatis-plus.version>3.4.0</mybatis-plus.version>
<druid.version>1.1.17</druid.version>
<dynamic.version>2.5.4</dynamic.version>
<jwt.version>0.9.1</jwt.version>
<commons.lang3.version>3.11</commons.lang3.version>
<commons.io.version>2.8.0</commons.io.version>
<guava.version>29.0-jre</guava.version>
<hutool.version>5.4.2</hutool.version>
<!-- <aliyun-java-sdk-core.version>3.2.3</aliyun-java-sdk-core.version>-->
<!-- <aliyun-java-sdk-dysmsapi.version>1.0.0</aliyun-java-sdk-dysmsapi.version>-->
<!-- <aliyun.oss.version>3.6.0</aliyun.oss.version>-->
</properties>
<dependencies>
<!-- 集成 springboot 相关组件 BEGIN -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 邮件服务 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!-- actuator 端点监控 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- 热部署 如果使用 Jrebel 忽略就好,如果不使用 Jrebel 则放开 -->
<!--
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
-->
<!-- 集成 springboot 相关组件 END -->
<!-- 集成Shiro鉴权安全认证 BEGIN -->
<!--shiro-->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring-boot-starter</artifactId>
<version>1.6.0</version>
</dependency>
<!-- shiro-redis -->
<dependency>
<groupId>org.crazycake</groupId>
<artifactId>shiro-redis</artifactId>
<version>3.3.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 集成Shiro鉴权安全认证 END -->
<!-- 集成数据库相关配置 BEGIN-->
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<!-- druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<!-- 动态数据源 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>${dynamic.version}</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
<scope>runtime</scope>
</dependency>
<!-- sqlserver-->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
<scope>runtime</scope>
</dependency>
<!-- oracle驱动 -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
<scope>runtime</scope>
</dependency>
<!-- postgresql驱动 -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.6</version>
<scope>runtime</scope>
</dependency>
<!-- 集成数据库相关配置 END-->
<!-- 集成Redis缓存 BEGIN -->
<!-- Redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 池管理 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<!-- 集成Redis缓存 END -->
<!-- 集成接口文档 BEGIN -->
<!-- Swagger API文档 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.9.3</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-bean-validators</artifactId>
<version>2.9.2</version>
</dependency>
<!-- # 增加两个配置解决 NumberFormatException -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.5.22</version>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>1.5.22</version>
</dependency>
<!-- 集成接口文档 END -->
<!-- 集成工具 BEGIN-->
<!-- commons -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons.io.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons.lang3.version}</version>
</dependency>
<!-- guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- alibaba json -->
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<!-- 糊涂工具包 建议不要重度依赖 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
</dependency>
<!-- 集成工具 END-->
</dependencies>
<!-- 包版本管理 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 远程仓库 -->
<repositories>
<repository>
<id>aliyun</id>
<name>aliyun Repository</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>uk</id>
<name>uk Repository</name>
<url>http://uk.maven.org/maven2/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>ibiblio</id>
<name>ibiblio Repository</name>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<!-- 环境选择 -->
<profiles>
<profile>
<!-- 本地开发环境 -->
<id>dev</id>
<properties>
<spring.active>dev</spring.active>
</properties>
<activation>
<!-- 设置默认激活这个配置 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<!-- 发布环境 -->
<id>release</id>
<properties>
<spring.active>release</spring.active>
</properties>
</profile>
<profile>
<!-- 测试环境 -->
<id>beta</id>
<properties>
<spring.active>beta</spring.active>
</properties>
</profile>
</profiles>
<!-- 构建 -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- 打包跳过测试 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<!-- 避免font文件的二进制文件格式压缩破坏 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>woff</nonFilteredFileExtension>
<nonFilteredFileExtension>woff2</nonFilteredFileExtension>
<nonFilteredFileExtension>eot</nonFilteredFileExtension>
<nonFilteredFileExtension>ttf</nonFilteredFileExtension>
<nonFilteredFileExtension>svg</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.json</include>
<include>**/*.ftl</include>
</includes>
</resource>
</resources>
</build>
</project>
Loading…
Cancel
Save