Browse Source

修改项目结构,添加auth、bom模块

Gaokun Wang 5 tháng trước cách đây
mục cha
commit
977ff94fa0

+ 18 - 0
eco-auth/eco-auth-api/pom.xml

@@ -0,0 +1,18 @@
+<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.eco.vip</groupId>
+        <artifactId>eco-auth</artifactId>
+        <version>${revision}</version>
+    </parent>
+
+    <artifactId>eco-auth-api</artifactId>
+    <packaging>jar</packaging>
+
+    <name>${project.artifactId}</name>
+    <description>
+        权限模块 API,暴露给其它模块调用
+    </description>
+
+</project>

+ 15 - 0
eco-auth/eco-auth-api/src/main/java/org/eco/vip/auth/api/IUserApi.java

@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ *
+ */
+
+package org.eco.vip.auth.api;
+
+/**
+ * 用户 API
+ *
+ * @author GaoKunW
+ * @date 2025-03-09 16:59:13
+ */
+public interface IUserApi {
+}

+ 16 - 0
eco-auth/eco-auth-biz/pom.xml

@@ -0,0 +1,16 @@
+<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.eco.vip</groupId>
+        <artifactId>eco-auth</artifactId>
+        <version>${revision}</version>
+    </parent>
+
+    <artifactId>eco-auth-biz</artifactId>
+    <name>${project.artifactId}</name>
+    <packaging>jar</packaging>
+    <description>
+        权限模块,业务实现等
+    </description>
+</project>

+ 18 - 0
eco-auth/pom.xml

@@ -0,0 +1,18 @@
+<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.eco.vip</groupId>
+        <artifactId>eco-boot</artifactId>
+        <version>${revision}</version>
+    </parent>
+
+    <artifactId>eco-auth</artifactId>
+    <name>${project.artifactId}</name>
+    <description>系统权限相关</description>
+    <modules>
+        <module>eco-auth-api</module>
+        <module>eco-auth-biz</module>
+    </modules>
+    <packaging>pom</packaging>
+</project>

+ 63 - 0
eco-bom/pom.xml

@@ -0,0 +1,63 @@
+<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>
+
+    <groupId>org.eco.vip</groupId>
+    <artifactId>eco-bom</artifactId>
+    <packaging>pom</packaging>
+    <name>${project.artifactId}</name>
+    <version>${revision}</version>
+
+    <description>
+        eco-bom 全局依赖项
+    </description>
+
+    <properties>
+        <!-- 系统版本 -->
+        <revision>1.0.0</revision>
+        <spring-boot.version>3.4.3</spring-boot.version>
+        <maven.compiler.source>${java.version}</maven.compiler.source>
+        <maven.compiler.target>${java.version}</maven.compiler.target>
+        <!-- 插件版本 -->
+        <maven-compiler-plugin.version>3.14.0</maven-compiler-plugin.version>
+        <maven-surefire-plugin.version>3.5.0</maven-surefire-plugin.version>
+        <flatten-maven-plugin.version>1.6.0</flatten-maven-plugin.version>
+        <mapstruct.version>1.6.3</mapstruct.version>
+        <lombok.version>1.18.36</lombok.version>
+    </properties>
+
+    <!-- 全局的依赖配置-->
+    <dependencyManagement>
+        <dependencies>
+
+            <!-- spring-boot-->
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring-boot.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+            <!-- com-web -->
+            <dependency>
+                <groupId>org.eco.vip</groupId>
+                <artifactId>com-web</artifactId>
+                <version>${revision}</version>
+            </dependency>
+
+            <!-- com-core -->
+            <dependency>
+                <groupId>org.eco.vip</groupId>
+                <artifactId>com-core</artifactId>
+                <version>${revision}</version>
+            </dependency>
+            <!-- lombok -->
+            <dependency>
+                <groupId>org.projectlombok</groupId>
+                <artifactId>lombok</artifactId>
+                <version>${lombok.version}</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+</project>

+ 0 - 35
eco-common/com-bom/pom.xml

@@ -1,35 +0,0 @@
-<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>
-
-    <groupId>org.eco.vip</groupId>
-    <artifactId>com-bom</artifactId>
-    <packaging>pom</packaging>
-
-    <version>${revision}</version>
-
-    <description>
-        com-bom common依赖项
-    </description>
-
-    <properties>
-        <revision>1.0.0</revision>
-    </properties>
-
-    <dependencyManagement>
-        <dependencies>
-            <!-- web服务 -->
-            <dependency>
-                <groupId>org.eco.vip</groupId>
-                <artifactId>com-web</artifactId>
-                <version>${revision}</version>
-            </dependency>
-            <!-- 核心 -->
-            <dependency>
-                <groupId>org.eco.vip</groupId>
-                <artifactId>com-core</artifactId>
-                <version>${revision}</version>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-</project>

+ 2 - 1
eco-common/com-core/pom.xml

@@ -8,7 +8,8 @@
     </parent>
 
     <artifactId>com-core</artifactId>
-    <packaging>pom</packaging>
+    <name>${project.artifactId}</name>
+    <packaging>jar</packaging>
 
     <dependencies>
         <dependency>

+ 11 - 3
eco-common/com-web/pom.xml

@@ -6,9 +6,15 @@
         <artifactId>eco-common</artifactId>
         <version>${revision}</version>
     </parent>
-
     <artifactId>com-web</artifactId>
+    <name>${project.artifactId}</name>
+    <packaging>jar</packaging>
     <dependencies>
+        <!-- com-core -->
+        <dependency>
+            <groupId>org.eco.vip</groupId>
+            <artifactId>com-core</artifactId>
+        </dependency>
         <!-- SpringBoot Web容器 -->
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -20,9 +26,11 @@
             <artifactId>spring-boot-starter-actuator</artifactId>
         </dependency>
 
+        <!-- spring boot 配置所需依赖 -->
         <dependency>
-            <groupId>org.eco.vip</groupId>
-            <artifactId>com-core</artifactId>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-configuration-processor</artifactId>
+            <optional>true</optional>
         </dependency>
     </dependencies>
 

+ 0 - 1
eco-common/pom.xml

@@ -13,7 +13,6 @@
         eco-common 公共模块
     </description>
     <modules>
-        <module>com-bom</module>
         <module>com-web</module>
         <module>com-core</module>
     </modules>

+ 23 - 20
eco-start/pom.xml

@@ -8,18 +8,14 @@
         <version>${revision}</version>
     </parent>
     <artifactId>eco-start</artifactId>
-    <name>eco-start</name>
+    <name>${project.artifactId}</name>
     <description>eco-start web 服务入口</description>
     <packaging>jar</packaging>
-    <properties>
-        <java.version>21</java.version>
-    </properties>
     <dependencies>
         <dependency>
             <groupId>org.eco.vip</groupId>
             <artifactId>com-web</artifactId>
         </dependency>
-
     </dependencies>
 
     <build>
@@ -27,7 +23,6 @@
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>${spring-boot.version}</version>
                 <executions>
                     <execution>
                         <goals>
@@ -36,20 +31,6 @@
                     </execution>
                 </executions>
             </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>${maven-jar-plugin.version}</version>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-war-plugin</artifactId>
-                <version>${maven-war-plugin.version}</version>
-                <configuration>
-                    <failOnMissingWebXml>false</failOnMissingWebXml>
-                    <warName>${project.artifactId}</warName>
-                </configuration>
-            </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
@@ -58,6 +39,28 @@
                     <target>15</target>
                 </configuration>
             </plugin>
+            <!--            <plugin>-->
+<!--                <groupId>org.apache.maven.plugins</groupId>-->
+<!--                <artifactId>maven-jar-plugin</artifactId>-->
+<!--                <version>${maven-jar-plugin.version}</version>-->
+<!--            </plugin>-->
+<!--            <plugin>-->
+<!--                <groupId>org.apache.maven.plugins</groupId>-->
+<!--                <artifactId>maven-war-plugin</artifactId>-->
+<!--                <version>${maven-war-plugin.version}</version>-->
+<!--                <configuration>-->
+<!--                    <failOnMissingWebXml>false</failOnMissingWebXml>-->
+<!--                    <warName>${project.artifactId}</warName>-->
+<!--                </configuration>-->
+<!--            </plugin>-->
+<!--            <plugin>-->
+<!--                <groupId>org.apache.maven.plugins</groupId>-->
+<!--                <artifactId>maven-compiler-plugin</artifactId>-->
+<!--                <configuration>-->
+<!--                    <source>15</source>-->
+<!--                    <target>15</target>-->
+<!--                </configuration>-->
+<!--            </plugin>-->
         </plugins>
         <finalName>${project.artifactId}</finalName>
     </build>

+ 10 - 4
eco-start/src/main/java/org/eco/vip/EcoStartApplication.java → eco-start/src/main/java/org/eco/vip/StartApplication.java

@@ -1,3 +1,8 @@
+/*
+ * Copyright (c) 2025 GaoKunW
+ *
+ */
+
 package org.eco.vip;
 
 import lombok.SneakyThrows;
@@ -14,27 +19,28 @@ import org.springframework.web.bind.annotation.RestController;
 /**
  * SpringBoot方式启动类
  *
- * @author wanggaokun
+ * @author GaoKunW
  * @date 2025/03/09 01:57
  */
 @SpringBootApplication
 @RestController
 @Slf4j
-public class EcoStartApplication {
+public class StartApplication {
 
     @SneakyThrows
     public static void main(String[] args) {
-        SpringApplication springApplication = new SpringApplication(EcoStartApplication.class);
+        SpringApplication springApplication = new SpringApplication(StartApplication.class);
         springApplication.setBannerMode(Banner.Mode.OFF);
         ConfigurableApplicationContext configurableApplicationContext = springApplication.run(args);
         Environment env = configurableApplicationContext.getEnvironment();
         log.info("""
-                        EcoStartApplication
+                        StartApplication
                         ----------------------------------------------------------
                         应用启动中! 访问URLs:
                         本地:    http://localhost:{}
                         ----------------------------------------------------------""",
                 env.getProperty("server.port"));
+        System.out.println("启动成功! 🎉🎉🎉🎉🎉");
     }
 
     /**

+ 4 - 1
eco-start/src/main/resources/application.yml

@@ -2,7 +2,7 @@
 eco:
   # 名称
   name: eco-boot
-  # 版本
+#  # 版本
 #  version: ${revision}
 #  # 版权年份
 #  copyrightYear: 2025 ~ 2028
@@ -11,6 +11,9 @@ eco:
 spring:
   application:
     name: ${eco.name}
+  mvc:
+    servlet:
+      load-on-startup: 1
 
 # 开发环境配置
 server:

+ 116 - 0
eco-start/src/main/resources/logback-spring.xml

@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+
+    <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
+
+    <!--日志格式应用spring boot默认的格式,也可以自己更改-->
+    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
+
+    <!--定义日志存放的位置,默认存放在项目启动的相对路径的目录-->
+    <springProperty scope="context" name="LOG_PATH" source="log.path" defaultValue="./logs"/>
+
+    <!-- ****************************** 本地开发只在控制台打印日志 ************************************ -->
+    <springProfile name="local">
+        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+            <encoder>
+                <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+                <charset>utf-8</charset>
+            </encoder>
+        </appender>
+
+        <!--默认所有的包以info-->
+        <root level="info">
+            <appender-ref ref="STDOUT"/>
+        </root>
+
+        <!--各个服务的包在本地执行的时候,打开debug模式-->
+        <logger name="org.eco.vip" level="info" additivity="false">
+            <appender-ref ref="STDOUT"/>
+        </logger>
+    </springProfile>
+
+    <!-- **** 放到服务器上不管在什么环境都只在文件记录日志,控制台(catalina.out)打印logback捕获不到的日志 **** -->
+    <springProfile name="!local">
+
+        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+            <encoder>
+                <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+                <charset>utf-8</charset>
+            </encoder>
+        </appender>
+
+        <!-- 日志记录器,日期滚动记录 -->
+        <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+            <!-- 正在记录的日志文件的路径及文件名 -->
+            <file>${LOG_PATH}/log_error.log</file>
+
+            <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+
+                <!-- 归档的日志文件的路径,%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
+                <fileNamePattern>${LOG_PATH}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+
+                <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
+                命名日志文件,例如log-error-2013-12-21.0.log -->
+                <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                    <maxFileSize>10MB</maxFileSize>
+                </timeBasedFileNamingAndTriggeringPolicy>
+            </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="FILE_ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+            <!-- 正在记录的日志文件的路径及文件名 -->
+            <file>${LOG_PATH}/log_all.log</file>
+
+            <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+
+                <!-- 归档的日志文件的路径,%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
+                <fileNamePattern>${LOG_PATH}/total/log_all-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+
+                <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
+                命名日志文件,例如log-error-2013-12-21.0.log -->
+                <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                    <maxFileSize>10MB</maxFileSize>
+                </timeBasedFileNamingAndTriggeringPolicy>
+            </rollingPolicy>
+
+            <!-- 追加方式记录日志 -->
+            <append>true</append>
+
+            <!-- 日志文件的格式 -->
+            <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+                <pattern>${FILE_LOG_PATTERN}</pattern>
+                <charset>utf-8</charset>
+            </encoder>
+        </appender>
+
+        <!--记录到文件时,记录两类一类是error日志,一个是所有日志-->
+        <root level="info">
+            <appender-ref ref="STDOUT"/>
+            <appender-ref ref="FILE_ERROR"/>
+            <appender-ref ref="FILE_ALL"/>
+        </root>
+
+    </springProfile>
+
+</configuration>

+ 83 - 33
pom.xml

@@ -6,57 +6,33 @@
     <groupId>org.eco.vip</groupId>
     <artifactId>eco-boot</artifactId>
     <version>${revision}</version>
-    <name>eco-boot</name>
+    <name>${project.artifactId}</name>
     <description>eco-boot</description>
+    <packaging>pom</packaging>
 
+    <!-- 项目模块 -->
     <modules>
         <module>eco-start</module>
         <module>eco-common</module>
+        <module>eco-bom</module>
+        <module>eco-auth</module>
     </modules>
-    <packaging>pom</packaging>
     <!-- 版本 -->
     <properties>
         <!-- 系统版本 -->
         <revision>1.0.0</revision>
         <java.version>21</java.version>
-        <spring-boot.version>3.4.3</spring-boot.version>
-        <!-- 插件版本 -->
-        <maven-jar-plugin.version>3.4.0</maven-jar-plugin.version>
-        <maven-war-plugin.version>3.4.0</maven-war-plugin.version>
         <lombok.version>1.18.36</lombok.version>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>
 
     <!-- 依赖管理 -->
     <dependencyManagement>
         <dependencies>
-            <!-- SpringBoot的依赖配置-->
-            <dependency>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-dependencies</artifactId>
-                <version>${spring-boot.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-
-            <!--测试框架-->
-            <dependency>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-starter-test</artifactId>
-                <version>${spring-boot.version}</version>
-                <scope>test</scope>
-            </dependency>
-
-            <!-- lombok-->
-            <dependency>
-                <groupId>org.projectlombok</groupId>
-                <artifactId>lombok</artifactId>
-                <version>${lombok.version}</version>
-            </dependency>
-
-            <!-- common 的依赖配置-->
+            <!-- 全局的依赖配置-->
             <dependency>
                 <groupId>org.eco.vip</groupId>
-                <artifactId>com-bom</artifactId>
+                <artifactId>eco-bom</artifactId>
                 <version>${revision}</version>
                 <type>pom</type>
                 <scope>import</scope>
@@ -89,11 +65,11 @@
         </pluginRepository>
     </pluginRepositories>
 
+    <!-- 环境标识,需要与配置文件的名称相对应 -->
     <profiles>
         <profile>
             <id>local</id>
             <properties>
-                <!-- 环境标识,需要与配置文件的名称相对应 -->
                 <profiles.active>local</profiles.active>
                 <logging.level>info</logging.level>
             </properties>
@@ -119,4 +95,78 @@
         </profile>
     </profiles>
 
+    <build>
+        <pluginManagement>
+            <plugins>
+                <!-- maven-surefire-plugin 插件,用于运行单元测试。 -->
+                <!-- 注意,需要使用 3.0.X+,因为要支持 Junit 5 版本 -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                </plugin>
+                <!-- maven-compiler-plugin 插件,解决 spring-boot-configuration-processor + Lombok + MapStruct 组合 -->
+                <!-- https://stackoverflow.com/questions/33483697/re-run-spring-boot-configuration-annotation-processor-to-update-generated-metada -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <configuration>
+                        <annotationProcessorPaths>
+                            <path>
+                                <groupId>org.springframework.boot</groupId>
+                                <artifactId>spring-boot-configuration-processor</artifactId>
+                            </path>
+                            <path>
+                                <groupId>org.projectlombok</groupId>
+                                <artifactId>lombok</artifactId>
+                                <!-- 这里必须要指定lombok的版本;否则lombok注解会失效-->
+                                <version>${lombok.version}</version>
+                            </path>
+                            <path>
+                                <groupId>org.mapstruct</groupId>
+                                <artifactId>mapstruct-processor</artifactId>
+                            </path>
+                        </annotationProcessorPaths>
+                        <!-- 编译参数写在 arg 内,解决 Spring Boot 3.2 的 Parameter Name Discovery 问题 -->
+                        <debug>false</debug>
+                        <compilerArgs>
+                            <arg>-parameters</arg>
+                        </compilerArgs>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>flatten-maven-plugin</artifactId>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+
+        <plugins>
+            <!-- 统一 revision 版本 -->
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>flatten-maven-plugin</artifactId>
+                <configuration>
+                    <flattenMode>oss</flattenMode>
+                    <updatePomFile>true</updatePomFile>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>flatten</goal>
+                        </goals>
+                        <id>flatten</id>
+                        <phase>process-resources</phase>
+                    </execution>
+                    <execution>
+                        <goals>
+                            <goal>clean</goal>
+                        </goals>
+                        <id>flatten.clean</id>
+                        <phase>clean</phase>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
 </project>