diff --git a/dsBase/dependency-reduced-pom.xml b/dsBase/dependency-reduced-pom.xml new file mode 100644 index 00000000..8f0e462f --- /dev/null +++ b/dsBase/dependency-reduced-pom.xml @@ -0,0 +1,85 @@ + + + + dsProject + com.dsideal + 1.0 + + 4.0.0 + dsBase + dsBase + 1.0 + + + + src/main/java + + **/*.sql + **/*.class + + + + src/main/resources + + + dsRes + + + maven-compiler-plugin + 3.6.1 + + 21 + 21 + UTF-8 + -parameters + + + + maven-shade-plugin + 3.2.1 + + + package + + shade + + + dsRes + + + com.demo.common.DemoConfig + + + + + + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + + + + + + + org.projectlombok + lombok + 1.18.34 + provided + + + + 21 + 21 + UTF-8 + + diff --git a/dsBase/dsBase.iml b/dsBase/dsBase.iml index 97714aba..546154af 100644 --- a/dsBase/dsBase.iml +++ b/dsBase/dsBase.iml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/dsBase/pom.xml b/dsBase/pom.xml index 78f9ed05..2513caa5 100644 --- a/dsBase/pom.xml +++ b/dsBase/pom.xml @@ -5,6 +5,10 @@ 4.0.0 dsBase 1.0 + + dsBase + jar + com.dsideal dsProject @@ -18,11 +22,6 @@ - - - - - com.jfinal @@ -238,14 +237,23 @@ activation 1.1.1 - - com.jfinal - jfinal-undertow - 3.6 - compile - + + dsRes + + + src/main/java + + **/*.sql + **/*.class + + + + src/main/resources + + + org.apache.maven.plugins @@ -259,6 +267,30 @@ -parameters + + org.apache.maven.plugins + maven-assembly-plugin + 2.5.5 + + + + com.dsideal.base.BaseApplication + + + + jar-with-dependencies + + + + + make-assembly + package + + single + + + + \ No newline at end of file diff --git a/dsBase/src/main/java/com/dsideal/base/BaseApplication.java b/dsBase/src/main/java/com/dsideal/base/BaseApplication.java index d8e05cdc..8108543e 100644 --- a/dsBase/src/main/java/com/dsideal/base/BaseApplication.java +++ b/dsBase/src/main/java/com/dsideal/base/BaseApplication.java @@ -17,7 +17,7 @@ import com.dsideal.base.StudentYd.Controller.StudentYdController; import com.dsideal.base.Teacher.Controller.TeacherController; import com.dsideal.base.TeacherYd.Controller.TeacherYdController; import com.dsideal.base.Tools.Controller.excelConvertController; -import com.dsideal.base.Util.FileUtil; +import com.dsideal.base.Util.CommonUtil; import com.dsideal.base.Util.LogBackLogFactory; import com.dsideal.base.Util.PkUtil; import com.jfinal.config.*; @@ -29,9 +29,8 @@ import com.jfinal.plugin.hikaricp.HikariCpPlugin; import com.jfinal.plugin.redis.RedisPlugin; import com.jfinal.server.undertow.UndertowServer; import com.jfinal.template.Engine; - -import java.io.File; - +import lombok.SneakyThrows; +import java.util.List; public class BaseApplication extends JFinalConfig { public static String getEnvPrefix() { @@ -117,6 +116,7 @@ public class BaseApplication extends JFinalConfig { // 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生 SQLException, 缺省:30秒 private long connectionTimeoutMs = 30000; + @SneakyThrows @Override public void configPlugin(Plugins me) { HikariCpPlugin masterPlugin = new HikariCpPlugin(PropKit.get("mysql.jdbcUrl"), PropKit.get("mysql.user"), @@ -145,17 +145,11 @@ public class BaseApplication extends JFinalConfig { ActiveRecordPlugin slaveArp = new ActiveRecordPlugin("slave", slavePlugin); slaveArp.setDialect(new MysqlDialect()); - //遍历sql目录下所有的sql文件 - File sqlDir; - String basePath = BaseApplication.class.getResource("/").getPath(); - sqlDir = new File(basePath + "/Sql"); - File[] sqlFiles = sqlDir.listFiles(); - for (File sqlFile : sqlFiles != null ? sqlFiles : new File[0]) { - //只加载.sql文件 - if (sqlFile.getName().indexOf(".sql") > 0) { - masterArp.addSqlTemplate("/Sql/" + sqlFile.getName()); - slaveArp.addSqlTemplate("/Sql/" + sqlFile.getName()); - } + //加载所有的sql文件 + List list = CommonUtil.getAllSql(); + for (String sqlFile : list) { + masterArp.addSqlTemplate(sqlFile); + slaveArp.addSqlTemplate(sqlFile); } //加载 me.add(masterArp); @@ -221,16 +215,13 @@ public class BaseApplication extends JFinalConfig { /** * 在jfinal启动完成后马上执行 */ + @SneakyThrows @Override public void onStart() { //打印 启动Logo - String path = BaseApplication.class.getClassLoader().getResource("logo.txt").getPath(); - File file = new File(path); - System.out.println(FileUtil.txt2String(file)); - + System.out.println(CommonUtil.txt2String("logo.txt")); //初始化人员主键序列 PkUtil.InitPersonNumPk(); - //初始化组织机构主键序列 PkUtil.InitOrgNumPk(); } diff --git a/dsBase/src/main/java/com/dsideal/base/Util/CommonUtil.java b/dsBase/src/main/java/com/dsideal/base/Util/CommonUtil.java index a4ad020c..3b3e67ab 100644 --- a/dsBase/src/main/java/com/dsideal/base/Util/CommonUtil.java +++ b/dsBase/src/main/java/com/dsideal/base/Util/CommonUtil.java @@ -2,6 +2,8 @@ package com.dsideal.base.Util; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.dsideal.base.BaseApplication; +import com.jfinal.kit.PathKit; import com.jfinal.kit.StrKit; import com.jfinal.plugin.activerecord.Page; import com.jfinal.plugin.activerecord.Record; @@ -11,9 +13,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.*; +import java.net.JarURLConnection; +import java.net.MalformedURLException; +import java.net.URL; +import java.nio.charset.StandardCharsets; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; +import java.util.jar.JarEntry; +import java.util.jar.JarFile; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -22,6 +30,84 @@ public class CommonUtil { //在独立的main函数中,使用下面的方式进行声明logback对象 private static final Logger log = LoggerFactory.getLogger(CommonUtil.class); + /** + * 判断当前项目是否在jar包中 + * + * @return 是/否 + */ + public static boolean isRunInJar() { + String resourcePath = "/" + CommonUtil.class.getPackageName().replace(".", "/"); + URL url = CommonUtil.class.getResource(resourcePath); + if (url.getProtocol().equals("jar")) { + return true; + } + return false; + } + + /** + * 获取文本文件内容,兼容jar包与文件系统两种情况 + * + * @param path 文件路径 + * @return 文件内容 + * @throws IOException + */ + public static String txt2String(String path) throws IOException { + InputStream is = CommonUtil.class.getClassLoader().getResourceAsStream(path); + BufferedInputStream bis = null; + StringBuilder sb = new StringBuilder(); + try { + bis = new BufferedInputStream(is); + byte[] temp = new byte[1024]; + int len; + while ((len = bis.read(temp)) != -1) { + sb.append(new String(temp, 0, len, StandardCharsets.UTF_8)); + } + } finally { + if (bis != null) { + bis.close(); + } + if (is != null) { + is.close(); + } + } + return sb.toString(); + } + + /** + * 获取所有sql文件,并返回一个list集合 + * + * @return + */ + public static List getAllSql() throws IOException { + List list = new ArrayList<>(); + if (isRunInJar()) { + URL url = BaseApplication.class.getClassLoader().getResource("Sql/"); + String jarPath = url.toString().substring(0, url.toString().indexOf("!/") + 2); + URL jarURL = new URL(jarPath); + JarURLConnection jarCon = (JarURLConnection) jarURL.openConnection(); + JarFile jarFile = jarCon.getJarFile(); + Enumeration jarEntrys = jarFile.entries(); + while (jarEntrys.hasMoreElements()) { + JarEntry entry = jarEntrys.nextElement(); + String name = entry.getName(); + if (name.startsWith("Sql/") && !entry.isDirectory()) { + list.add(name); + } + } + } else {//如果运行在文件系统中,直接加载sql文件 + //遍历sql目录下所有的sql文件 + File sqlDir; + String basePath = PathKit.getRootClassPath(); + sqlDir = new File(basePath + "/Sql"); + File[] sqlFiles = sqlDir.listFiles(); + for (File sqlFile : sqlFiles != null ? sqlFiles : new File[0]) { + if (sqlFile.getName().indexOf(".sql") > 0) {//只加载.sql文件 + list.add("Sql/"+sqlFile.getName()); + } + } + } + return list; + } /** * 功能:删除指定目录下所有的文件 diff --git a/dsBase/src/main/resource/ExcelExportTemplate/excelTemp/占位文件.txt b/dsBase/src/main/resources/ExcelExportTemplate/excelTemp/占位文件.txt similarity index 100% rename from dsBase/src/main/resource/ExcelExportTemplate/excelTemp/占位文件.txt rename to dsBase/src/main/resources/ExcelExportTemplate/excelTemp/占位文件.txt diff --git a/dsBase/src/main/resource/ExcelExportTemplate/getPrincipalshipThirdParty.json b/dsBase/src/main/resources/ExcelExportTemplate/getPrincipalshipThirdParty.json similarity index 100% rename from dsBase/src/main/resource/ExcelExportTemplate/getPrincipalshipThirdParty.json rename to dsBase/src/main/resources/ExcelExportTemplate/getPrincipalshipThirdParty.json diff --git a/dsBase/src/main/resource/ExcelExportTemplate/getPrintAreaBureau.json b/dsBase/src/main/resources/ExcelExportTemplate/getPrintAreaBureau.json similarity index 100% rename from dsBase/src/main/resource/ExcelExportTemplate/getPrintAreaBureau.json rename to dsBase/src/main/resources/ExcelExportTemplate/getPrintAreaBureau.json diff --git a/dsBase/src/main/resource/ExcelExportTemplate/getPrintAreaManager.json b/dsBase/src/main/resources/ExcelExportTemplate/getPrintAreaManager.json similarity index 100% rename from dsBase/src/main/resource/ExcelExportTemplate/getPrintAreaManager.json rename to dsBase/src/main/resources/ExcelExportTemplate/getPrintAreaManager.json diff --git a/dsBase/src/main/resource/ExcelExportTemplate/getPrintCityBureau.json b/dsBase/src/main/resources/ExcelExportTemplate/getPrintCityBureau.json similarity index 100% rename from dsBase/src/main/resource/ExcelExportTemplate/getPrintCityBureau.json rename to dsBase/src/main/resources/ExcelExportTemplate/getPrintCityBureau.json diff --git a/dsBase/src/main/resource/ExcelExportTemplate/getPrintCityManager.json b/dsBase/src/main/resources/ExcelExportTemplate/getPrintCityManager.json similarity index 100% rename from dsBase/src/main/resource/ExcelExportTemplate/getPrintCityManager.json rename to dsBase/src/main/resources/ExcelExportTemplate/getPrintCityManager.json diff --git a/dsBase/src/main/resource/ExcelExportTemplate/getPrintParent.json b/dsBase/src/main/resources/ExcelExportTemplate/getPrintParent.json similarity index 100% rename from dsBase/src/main/resource/ExcelExportTemplate/getPrintParent.json rename to dsBase/src/main/resources/ExcelExportTemplate/getPrintParent.json diff --git a/dsBase/src/main/resource/ExcelExportTemplate/getPrintStudent.json b/dsBase/src/main/resources/ExcelExportTemplate/getPrintStudent.json similarity index 100% rename from dsBase/src/main/resource/ExcelExportTemplate/getPrintStudent.json rename to dsBase/src/main/resources/ExcelExportTemplate/getPrintStudent.json diff --git a/dsBase/src/main/resource/ExcelExportTemplate/getTeacherListByBureauId.json b/dsBase/src/main/resources/ExcelExportTemplate/getTeacherListByBureauId.json similarity index 100% rename from dsBase/src/main/resource/ExcelExportTemplate/getTeacherListByBureauId.json rename to dsBase/src/main/resources/ExcelExportTemplate/getTeacherListByBureauId.json diff --git a/dsBase/src/main/resource/ExcelImportTemplate/Student.json b/dsBase/src/main/resources/ExcelImportTemplate/Student.json similarity index 100% rename from dsBase/src/main/resource/ExcelImportTemplate/Student.json rename to dsBase/src/main/resources/ExcelImportTemplate/Student.json diff --git a/dsBase/src/main/resource/ExcelImportTemplate/Student.xls b/dsBase/src/main/resources/ExcelImportTemplate/Student.xls similarity index 100% rename from dsBase/src/main/resource/ExcelImportTemplate/Student.xls rename to dsBase/src/main/resources/ExcelImportTemplate/Student.xls diff --git a/dsBase/src/main/resource/ExcelImportTemplate/StudentSample.xls b/dsBase/src/main/resources/ExcelImportTemplate/StudentSample.xls similarity index 100% rename from dsBase/src/main/resource/ExcelImportTemplate/StudentSample.xls rename to dsBase/src/main/resources/ExcelImportTemplate/StudentSample.xls diff --git a/dsBase/src/main/resource/ExcelImportTemplate/Teacher.json b/dsBase/src/main/resources/ExcelImportTemplate/Teacher.json similarity index 100% rename from dsBase/src/main/resource/ExcelImportTemplate/Teacher.json rename to dsBase/src/main/resources/ExcelImportTemplate/Teacher.json diff --git a/dsBase/src/main/resource/ExcelImportTemplate/Teacher.xls b/dsBase/src/main/resources/ExcelImportTemplate/Teacher.xls similarity index 100% rename from dsBase/src/main/resource/ExcelImportTemplate/Teacher.xls rename to dsBase/src/main/resources/ExcelImportTemplate/Teacher.xls diff --git a/dsBase/src/main/resource/ExcelImportTemplate/TeacherSample.xls b/dsBase/src/main/resources/ExcelImportTemplate/TeacherSample.xls similarity index 100% rename from dsBase/src/main/resource/ExcelImportTemplate/TeacherSample.xls rename to dsBase/src/main/resources/ExcelImportTemplate/TeacherSample.xls diff --git a/dsBase/src/main/resource/SetMinioDownload.json b/dsBase/src/main/resources/SetMinioDownload.json similarity index 100% rename from dsBase/src/main/resource/SetMinioDownload.json rename to dsBase/src/main/resources/SetMinioDownload.json diff --git a/dsBase/src/main/resource/Sql/ClearDataBase.sql b/dsBase/src/main/resources/Sql/ClearDataBase.sql similarity index 100% rename from dsBase/src/main/resource/Sql/ClearDataBase.sql rename to dsBase/src/main/resources/Sql/ClearDataBase.sql diff --git a/dsBase/src/main/resource/Sql/YltWxGzh.sql b/dsBase/src/main/resources/Sql/YltWxGzh.sql similarity index 100% rename from dsBase/src/main/resource/Sql/YltWxGzh.sql rename to dsBase/src/main/resources/Sql/YltWxGzh.sql diff --git a/dsBase/src/main/resource/Sql/app.sql b/dsBase/src/main/resources/Sql/app.sql similarity index 100% rename from dsBase/src/main/resource/Sql/app.sql rename to dsBase/src/main/resources/Sql/app.sql diff --git a/dsBase/src/main/resource/Sql/base.sql b/dsBase/src/main/resources/Sql/base.sql similarity index 100% rename from dsBase/src/main/resource/Sql/base.sql rename to dsBase/src/main/resources/Sql/base.sql diff --git a/dsBase/src/main/resource/Sql/class.sql b/dsBase/src/main/resources/Sql/class.sql similarity index 100% rename from dsBase/src/main/resource/Sql/class.sql rename to dsBase/src/main/resources/Sql/class.sql diff --git a/dsBase/src/main/resource/Sql/dm.sql b/dsBase/src/main/resources/Sql/dm.sql similarity index 100% rename from dsBase/src/main/resource/Sql/dm.sql rename to dsBase/src/main/resources/Sql/dm.sql diff --git a/dsBase/src/main/resource/Sql/global.sql b/dsBase/src/main/resources/Sql/global.sql similarity index 100% rename from dsBase/src/main/resource/Sql/global.sql rename to dsBase/src/main/resources/Sql/global.sql diff --git a/dsBase/src/main/resource/Sql/graduationAction.sql b/dsBase/src/main/resources/Sql/graduationAction.sql similarity index 100% rename from dsBase/src/main/resource/Sql/graduationAction.sql rename to dsBase/src/main/resources/Sql/graduationAction.sql diff --git a/dsBase/src/main/resource/Sql/gtzz.sql b/dsBase/src/main/resources/Sql/gtzz.sql similarity index 100% rename from dsBase/src/main/resource/Sql/gtzz.sql rename to dsBase/src/main/resources/Sql/gtzz.sql diff --git a/dsBase/src/main/resource/Sql/loginPerson.sql b/dsBase/src/main/resources/Sql/loginPerson.sql similarity index 100% rename from dsBase/src/main/resource/Sql/loginPerson.sql rename to dsBase/src/main/resources/Sql/loginPerson.sql diff --git a/dsBase/src/main/resource/Sql/menu.sql b/dsBase/src/main/resources/Sql/menu.sql similarity index 100% rename from dsBase/src/main/resource/Sql/menu.sql rename to dsBase/src/main/resources/Sql/menu.sql diff --git a/dsBase/src/main/resource/Sql/organization.sql b/dsBase/src/main/resources/Sql/organization.sql similarity index 100% rename from dsBase/src/main/resource/Sql/organization.sql rename to dsBase/src/main/resources/Sql/organization.sql diff --git a/dsBase/src/main/resource/Sql/student.sql b/dsBase/src/main/resources/Sql/student.sql similarity index 100% rename from dsBase/src/main/resource/Sql/student.sql rename to dsBase/src/main/resources/Sql/student.sql diff --git a/dsBase/src/main/resource/Sql/studentYd.sql b/dsBase/src/main/resources/Sql/studentYd.sql similarity index 100% rename from dsBase/src/main/resource/Sql/studentYd.sql rename to dsBase/src/main/resources/Sql/studentYd.sql diff --git a/dsBase/src/main/resource/Sql/teacher.sql b/dsBase/src/main/resources/Sql/teacher.sql similarity index 100% rename from dsBase/src/main/resource/Sql/teacher.sql rename to dsBase/src/main/resources/Sql/teacher.sql diff --git a/dsBase/src/main/resource/Sql/teacherYd.sql b/dsBase/src/main/resources/Sql/teacherYd.sql similarity index 100% rename from dsBase/src/main/resource/Sql/teacherYd.sql rename to dsBase/src/main/resources/Sql/teacherYd.sql diff --git a/dsBase/src/main/resource/application_ali.yaml b/dsBase/src/main/resources/application_ali.yaml similarity index 100% rename from dsBase/src/main/resource/application_ali.yaml rename to dsBase/src/main/resources/application_ali.yaml diff --git a/dsBase/src/main/resource/application_dev.yaml b/dsBase/src/main/resources/application_dev.yaml similarity index 100% rename from dsBase/src/main/resource/application_dev.yaml rename to dsBase/src/main/resources/application_dev.yaml diff --git a/dsBase/src/main/resource/application_pro.yaml b/dsBase/src/main/resources/application_pro.yaml similarity index 100% rename from dsBase/src/main/resource/application_pro.yaml rename to dsBase/src/main/resources/application_pro.yaml diff --git a/dsBase/src/main/resource/cron4j.properties b/dsBase/src/main/resources/cron4j.properties similarity index 100% rename from dsBase/src/main/resource/cron4j.properties rename to dsBase/src/main/resources/cron4j.properties diff --git a/dsBase/src/main/resource/log4j.properties b/dsBase/src/main/resources/log4j.properties similarity index 100% rename from dsBase/src/main/resource/log4j.properties rename to dsBase/src/main/resources/log4j.properties diff --git a/dsBase/src/main/resource/logback.xml b/dsBase/src/main/resources/logback.xml similarity index 100% rename from dsBase/src/main/resource/logback.xml rename to dsBase/src/main/resources/logback.xml diff --git a/dsBase/src/main/resource/logo.txt b/dsBase/src/main/resources/logo.txt similarity index 100% rename from dsBase/src/main/resource/logo.txt rename to dsBase/src/main/resources/logo.txt diff --git a/dsBase/src/main/resource/undertow_dev.properties b/dsBase/src/main/resources/undertow_dev.properties similarity index 100% rename from dsBase/src/main/resource/undertow_dev.properties rename to dsBase/src/main/resources/undertow_dev.properties diff --git a/dsBase/src/main/resource/undertow_pro.properties b/dsBase/src/main/resources/undertow_pro.properties similarity index 100% rename from dsBase/src/main/resource/undertow_pro.properties rename to dsBase/src/main/resources/undertow_pro.properties