lizw 3 年之前
當前提交
fcefab35a7

+ 75 - 0
.gitignore

@@ -0,0 +1,75 @@
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
+# STS
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+bin/
+!**/src/main/**/bin/
+!**/src/test/**/bin/
+
+# IntelliJ IDEA
+.idea
+*.iws
+*.iml
+*.ipr
+out/
+!**/src/main/**/out/
+!**/src/test/**/out/
+
+# NetBeans
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+
+# VS Code
+.vscode/
+
+# gradle
+!gradle/wrapper/gradle-wrapper.jar
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+# 设置不需要提交的文件
+.flattened-pom.xml
+*.eml
+*.lock
+*.log.*
+.gradle
+.vscode
+.DS_Store
+target
+pom.xml.versionsBackup
+build/
+node_modules
+logs
+T.groovy
+TC.java

+ 238 - 0
build.gradle

@@ -0,0 +1,238 @@
+buildscript {
+    repositories {
+        mavenLocal()
+        maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
+        mavenCentral()
+    }
+    dependencies {
+        classpath "org.springframework.boot:spring-boot-gradle-plugin:2.3.12.RELEASE"
+        classpath 'org.apache.commons:commons-lang3:3.12.0'
+        classpath 'commons-io:commons-io:2.11.0'
+    }
+}
+
+plugins {
+    id 'idea'
+    id 'java-library'
+    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
+}
+
+ext {
+    buildNumber = System.getenv('BUILD_NUMBER') == null ? "0" : System.getenv('BUILD_NUMBER')
+    jmhVersion = '1.32'
+    poiVersion = '4.1.2'
+    antlr4Version = '4.9.3'
+    querydslVersion = '5.0.0'
+    groovyVersion = '2.5.16'
+    schemacrawlerVersion = '16.16.11'
+    springBootVersion = '2.3.12.RELEASE'
+    springCloudVersion = 'Hoxton.SR12'
+}
+
+idea {
+    project {
+        jdkName = '1.8'
+        languageLevel = '1.8'
+    }
+    module {
+        downloadJavadoc = true
+        downloadSources = true
+    }
+}
+
+allprojects {
+    apply plugin: 'java-library'
+
+    group 'com.galaxis.wms'
+    version "0.0.$buildNumber-SNAPSHOT"
+
+    repositories {
+        mavenLocal()
+        maven { url 'https://nexus.yyjzt.com/nexus/content/groups/public/' }
+        maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
+        mavenCentral()
+    }
+
+    // 默认是24小时,gradle会检查一次依赖,可以设置每次build都进行检查
+    configurations.all {
+        // resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
+    }
+
+    sourceCompatibility = 1.8
+    targetCompatibility = 1.8
+
+    tasks.withType(JavaCompile) {
+        options.encoding = 'UTF-8'
+        // options.warnings = false
+        // options.deprecation = true
+        options.compilerArgs << '-parameters'
+    }
+}
+
+subprojects {
+    apply plugin: 'idea'
+    apply plugin: 'java-library'
+    apply plugin: 'maven-publish'
+    apply plugin: 'io.spring.dependency-management'
+
+    dependencyManagement {
+        imports {
+            mavenBom "org.springframework.boot:spring-boot-dependencies:$springBootVersion"
+            mavenBom "org.springframework.cloud:spring-cloud-dependencies:$springCloudVersion"
+        }
+
+        dependencies {
+            // performance test
+            dependency "org.openjdk.jmh:jmh-core:$jmhVersion"
+            dependency "org.openjdk.jmh:jmh-generator-annprocess:$jmhVersion"
+            // javax
+            dependency 'javax.servlet:javax.servlet-api:4.0.1'
+            dependency 'javax.inject:javax.inject:1'
+            dependency 'javax.validation:validation-api:2.0.1.Final'
+            dependency 'javax.persistence:persistence-api:1.0.2'
+            dependency 'jakarta.persistence:jakarta.persistence-api:2.2.3'
+            dependency 'com.google.code.findbugs:jsr305:3.0.2'
+            dependency 'org.glassfish:javax.el:3.0.1-b09'
+            // jdbc
+            dependency 'p6spy:p6spy:3.9.1'
+            dependency 'com.oracle.database.nls:orai18n:21.3.0.0'
+            // apache commons
+            dependency 'commons-io:commons-io:2.11.0'
+            dependency 'org.apache.commons:commons-text:1.9'
+            dependency 'org.apache.commons:commons-email:1.5'
+            dependency 'commons-beanutils:commons-beanutils:1.9.4'
+            // http相关
+            dependency 'com.squareup.okhttp3:okhttp:4.9.3'
+            dependency 'com.squareup.retrofit2:retrofit:2.9.0'
+            // json、xml相关
+            dependency 'org.json:json:20210307'
+            dependency 'com.alibaba:fastjson:1.2.78'
+            dependency 'com.thoughtworks.xstream:xstream:1.4.19'
+            // 反射相关
+            dependency 'net.jodah:typetools:0.6.3'
+            dependency 'cglib:cglib:3.3.0'
+            dependency 'org.reflections:reflections:0.10.2'
+            // groovy
+            dependency "org.codehaus.groovy:groovy:$groovyVersion"
+            // 验证码
+            dependency 'com.github.cage:cage:1.0'
+            dependency 'com.github.axet:kaptcha:0.0.9'
+            dependency 'com.github.bingoohuang:patchca:0.0.1'
+            // antlr4
+            dependency "org.antlr:antlr4-runtime:$antlr4Version"
+            dependency "org.antlr:antlr4:$antlr4Version"
+            // excel读写
+            dependency "org.apache.poi:poi:$poiVersion"
+            dependency "org.apache.poi:poi-ooxml:$poiVersion"
+            dependency "org.apache.poi:poi-ooxml:$poiVersion"
+            dependency "org.apache.poi:poi-ooxml-schemas:$poiVersion"
+            dependency 'com.alibaba:easyexcel:3.0.5'
+            // querydsl
+            dependency "com.querydsl:querydsl-core:$querydslVersion"
+            dependency "com.querydsl:querydsl-sql:$querydslVersion"
+            dependency "com.querydsl:querydsl-jpa:$querydslVersion"
+            dependency "com.querydsl:querydsl-apt:$querydslVersion"
+            dependency "com.querydsl:querydsl-codegen:$querydslVersion"
+            dependency "com.querydsl:querydsl-sql-codegen:$querydslVersion"
+            // jwt
+            dependency 'io.jsonwebtoken:jjwt-api:0.11.2'
+            dependency 'io.jsonwebtoken:jjwt-impl:0.11.2'
+            dependency 'io.jsonwebtoken:jjwt-jackson:0.11.2'
+            // schemacrawler
+            dependency "us.fatehi:schemacrawler:$schemacrawlerVersion"
+            dependency "us.fatehi:schemacrawler-commandline:$schemacrawlerVersion"
+            dependency "us.fatehi:schemacrawler-postgresql:$schemacrawlerVersion"
+            dependency "us.fatehi:schemacrawler-oracle:$schemacrawlerVersion"
+            dependency "us.fatehi:schemacrawler-sqlserver:$schemacrawlerVersion"
+            dependency "us.fatehi:schemacrawler-mysql:$schemacrawlerVersion"
+            // 版本冲突的包
+            dependency 'org.ow2.asm:asm:7.1'
+            dependency 'org.apache.commons:commons-math3:3.6.1'
+            dependency 'org.javassist:javassist:3.28.0-GA'
+            // 其他工具包
+            dependency 'org.jetbrains:annotations:23.0.0'
+            dependency 'com.google.guava:guava:31.0.1-jre'
+            dependency 'com.google.zxing:javase:3.4.1'
+            dependency 'com.belerweb:pinyin4j:2.5.1'
+            dependency 'eu.bitwalker:UserAgentUtils:1.21'
+            dependency 'net.sf.dozer:dozer:5.5.1'
+            dependency 'ognl:ognl:3.2.21'
+            dependency 'com.github.jsqlparser:jsqlparser:4.2'
+            dependency 'com.jfinal:enjoy:4.9.16'
+            dependency 'org.apache.velocity:velocity:1.7'
+            dependency 'com.xuxueli:xxl-job-core:2.3.0'
+        }
+    }
+
+    dependencies {
+        api 'org.springframework.boot:spring-boot-starter-logging'
+        compileOnly 'org.projectlombok:lombok'
+        annotationProcessor 'org.projectlombok:lombok'
+        testCompileOnly 'org.projectlombok:lombok'
+        testAnnotationProcessor 'org.projectlombok:lombok'
+        testImplementation 'org.openjdk.jmh:jmh-core'
+        testImplementation 'org.openjdk.jmh:jmh-generator-annprocess'
+        testImplementation 'org.springframework.boot:spring-boot-starter-test'
+    }
+
+    // task sourcesJar(type: Jar) {
+    //     archiveClassifier.convention('sources')
+    //     archiveClassifier.set('sources')
+    //     from sourceSets.main.allSource
+    // }
+
+    // task javadocJar(type: Jar) {
+    //     archiveClassifier.convention('javadoc')
+    //     archiveClassifier.set('javadoc')
+    //     from javadoc.destinationDir
+    // }
+
+    // artifacts {
+    //     archives sourcesJar
+    //     archives javadocJar
+    // }
+
+    jar {
+        manifest.attributes provider: 'gradle'
+    }
+
+    // test {
+    //     useJUnitPlatform()
+    // }
+
+    publishing {
+        repositories {
+            maven {
+                url = "http://nexus.yvanui.com/nexus/content/repositories/snapshots/"
+                credentials {
+                    username = project.properties['NEXUS_USERNAME']
+                    password = project.properties['NEXUS_PASSWORD']
+                }
+            }
+        }
+
+        publications {
+            mavenJava(MavenPublication) {
+                versionMapping {
+                    usage('java-api') {
+                        fromResolutionOf('runtimeClasspath')
+                    }
+                    usage('java-runtime') {
+                        fromResolutionResult()
+                    }
+                }
+                from components.java
+                // artifact sourcesJar
+                // artifact javadocJar
+                pom {
+                    name = 'yvan-framework library'
+                    description = 'yvan-framework library'
+                }
+            }
+        }
+    }
+}
+
+jar {
+    enabled = false
+}

+ 17 - 0
gateway-server/build.gradle

@@ -0,0 +1,17 @@
+apply plugin: 'org.springframework.boot'
+
+dependencies {
+    annotationProcessor "org.springframework.boot:spring-boot-configuration-processor"
+    api 'org.springframework.cloud:spring-cloud-starter-gateway'
+    api 'org.springframework.boot:spring-boot-starter-webflux'
+    // api 'org.springframework.boot:spring-boot-starter-actuator'
+    // api 'org.springframework.boot:spring-boot-starter-data-redis'
+    // api 'com.zaxxer:HikariCP'
+    api 'org.apache.commons:commons-lang3'
+    api 'org.apache.commons:commons-pool2'
+    api 'com.google.guava:guava'
+}
+
+bootJar {
+    enabled = true
+}

+ 15 - 0
gateway-server/src/main/java/com/galaxis/wms/StartApp.java

@@ -0,0 +1,15 @@
+package com.galaxis.wms;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.ApplicationContext;
+
+@SpringBootApplication
+@Slf4j
+public class StartApp {
+    public static void main(String[] args) {
+        ApplicationContext ctx = SpringApplication.run(StartApp.class, args);
+        log.info("### 服务启动完成 === " + ctx);
+    }
+}

+ 13 - 0
gateway-server/src/main/resources/application-dev.yml

@@ -0,0 +1,13 @@
+###################################################################################
+### gateway配置
+###################################################################################
+spring:
+  cloud.gateway:
+    routes:
+      - id: test
+        uri: http://127.0.0.1:3333
+        order: 0
+        filters:
+          - PreserveHostHeader
+        predicates:
+          - Path=/wms/api

+ 29 - 0
gateway-server/src/main/resources/application.yml

@@ -0,0 +1,29 @@
+###################################################################################
+### logging(logback)
+###################################################################################
+logging:
+  config: classpath:logback.xml
+  level:
+    org.springframework: info
+    com.galaxis: debug
+
+###################################################################################
+### Web服务器配置
+###################################################################################
+server:
+  port: 9000
+
+###################################################################################
+### Spring配置
+###################################################################################
+spring:
+  application.name: gateway-server
+  profiles.active: dev
+  codec:
+    max-in-memory-size: 1MB
+  cloud:
+    gateway:
+      discovery:
+        locator:
+          enabled: false
+          lower-case-service-id: true

+ 54 - 0
gateway-server/src/main/resources/logback.xml

@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="false" scanPeriod="60 seconds" debug="false">
+    <!-- 应用名称 -->
+    <property name="APP_NAME" value="gateway-server"/>
+    <!--日志文件的保存路径,首先查找系统属性-Dlog.dir,如果存在就使用其;否则,在当前目录下创建名为logs目录做日志存放的目录 -->
+    <property name="LOG_HOME" value="./logs/${APP_NAME}"/>
+    <!-- 日志输出格式 -->
+    <property name="ENCODER_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} - %msg%n"/>
+    <property name="ENCODER_PATTERN_CONSOLE" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{80} - %msg%n"/>
+    <!--<property name="ENCODER_PATTERN_CONSOLE" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{80}) - %msg%n"/>-->
+    <contextName>${APP_NAME}</contextName>
+
+    <!-- 控制台日志:输出全部日志到控制台 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <Pattern>${ENCODER_PATTERN_CONSOLE}</Pattern>
+        </encoder>
+    </appender>
+
+    <!-- 文件日志:输出全部日志到文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_HOME}/${APP_NAME}.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_HOME}/${APP_NAME}.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <maxHistory>30</maxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>${ENCODER_PATTERN}</pattern>
+        </encoder>
+    </appender>
+
+    <!-- 错误日志:用于将错误日志输出到独立文件 -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_HOME}/error.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_HOME}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
+            <maxHistory>30</maxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>${ENCODER_PATTERN}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>ERROR</level>
+        </filter>
+    </appender>
+
+    <root level="INFO">
+        <appender-ref ref="STDOUT"/>
+        <!--
+        <appender-ref ref="FILE"/>
+        <appender-ref ref="ERROR_FILE"/>
+        -->
+    </root>
+</configuration>

+ 13 - 0
gradle.properties

@@ -0,0 +1,13 @@
+# ---------------------------------------------------------- gradle build params
+org.gradle.daemon=true
+org.gradle.parallel=true
+org.gradle.configureondemand=true
+org.gradle.caching=true
+#org.gradle.workers.max=
+#org.gradle.console=auto
+#org.gradle.warning.mode=
+#org.gradle.java.home=
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
+# ---------------------------------------------------------- custom params
+NEXUS_USERNAME=wotu
+NEXUS_PASSWORD=

二進制
gradle/wrapper/gradle-wrapper.jar


+ 6 - 0
gradle/wrapper/gradle-wrapper.properties

@@ -0,0 +1,6 @@
+#Thu Nov 25 16:27:36 CST 2021
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-all.zip
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStorePath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME

+ 3 - 0
settings.gradle

@@ -0,0 +1,3 @@
+rootProject.name = 'yxt-api-gateway'
+include 'gateway-server'
+