当前位置: 首页 > article >正文

项目架构调整,切换版本并发布到中央仓库

文章目录

    • 0.完成运维篇maven发布到中央仓库的部分
        • 1.配置server到settings.xml
        • 2.配置gpg
    • 1.架构调整
        • 1.sunrays-dependencies(统一管理依赖和配置)
          • 1.作为单独的模块
          • 2.填写发布到中央仓库的配置
            • 1.基础属性
            • 2.基本配置
            • 3.插件配置
          • 3.完整的pom.xml
        • 2.sunrays-framework(统一管理子模块)
          • 1.继承sunrays-dependencies
          • 2.发布基本配置
          • 3.完整的pom.xml
        • 3.其余模块都继承sunrays-framework,如果需要发布,则需要填写发布基本配置
    • 2.切换版本并发布到本地仓库
        • 1.修改sunrays-dependencies的版本为0.0.6
        • 2.修改sunrays-framework继承的版本也为0.0.6
        • 3.将sunrays-dependencies模块发布到本地仓库,直接clean install
        • 4.sunrays-framework 下使用maven 插件统一切换版本为0.0.6
        • 5.按照以下顺序发布到本地仓库
          • 1.sunrays-framework 只发布父模块
          • 2.sunrays-common 直接clean install
          • 3.sunrays-common-cloud 直接clean install
          • 4.sunrays-combinations 直接clean install
          • 5.sunrays-common-demo 直接clean install
          • 6.sunrays-combinations-demo 直接clean install
          • 7.最后sunrays-framework再clean install一下
    • 3.发布到远程仓库
        • 1.sunrays-dependencies 直接发布 mvn clean deploy
        • 2.点击publish(一定要等到变绿再进行下一步!!!)
        • 3.sunrays-framework 单独发布 mvn clean deploy -N
        • 4.依然点击publish(一定要等到变绿再进行下一步!!!)
        • 5.发布sunrays-common-cloud模块,直接发布即可
        • 6.发布sunrays-common模块,也是直接发布
        • 7.全部发布后,点击Publish,等待变绿
    • 4.测试使用
        • 1.新建一个Maven项目
        • 2.在pom中直接使用sunrays-dependencies进行依赖管理
        • 3.引入依赖
        • 4.application.yml 配置日志存储根目录默认./logs
        • 5.SunraysApplication.java 启动类
        • 6.编写controller
        • 7.测试,自动打印出参入参

0.完成运维篇maven发布到中央仓库的部分

1.配置server到settings.xml
    <!-- 发布到maven的中央仓库的server -->
    <server>
      <id>sonatype</id>
      <username>username</username>
      <password>password</password>
    </server>
2.配置gpg

1.架构调整

1.sunrays-dependencies(统一管理依赖和配置)
1.作为单独的模块
    <groupId>cn.sunxiansheng</groupId>
    <artifactId>sunrays-dependencies</artifactId>
    <version>0.0.5</version>
2.填写发布到中央仓库的配置
1.基础属性
    <!-- 项目名 -->
    <name>${project.groupId}:${project.artifactId}</name>
    <!-- 简单描述 -->
    <description>统一管理依赖,本项目的所有模块都要直接或者间接的继承该模块</description>
    <!-- 开源地址 -->
    <url>https://gitee.com/qyxinhua_0/sunrays-framework/tree/master/sunrays-dependencies</url>
2.基本配置
    <!-- 发布到Maven中央仓库需要的配置1 -->
    <!-- 开源协议 -->
    <licenses>
        <license>
            <name>MIT License</name>
            <url>http://www.opensource.org/licenses/mit-license.php</url>
        </license>
    </licenses>

    <!-- 开发者配置 -->
    <developers>
        <developer>
            <name>sxs</name>
            <email>xxxx@126.com</email>
            <!-- url是个人主页的地址 -->
            <url>https://sunweb.blog.csdn.net/</url>
        </developer>
    </developers>

    <!-- 源码仓库相关配置 -->
    <scm>
        <!-- 只读连接 -->
        <connection>scm:git:git://gitee.com/qyxinhua_0/sunrays-framework.git</connection>
        <!-- 开发者连接 (SSH) -->
        <developerConnection>scm:git:git@gitee.com:qyxinhua_0/sunrays-framework.git</developerConnection>
        <!-- 仓库浏览 URL -->
        <url>https://gitee.com/qyxinhua_0/sunrays-framework</url>
    </scm>
    <!-- 发布到Maven中央仓库需要的配置1 -->
3.插件配置
            <!-- 发布到Maven中央仓库需要的配置2 -->
            <!-- central发布插件(需要配置!!!) -->
            <plugin>
                <groupId>org.sonatype.central</groupId>
                <artifactId>central-publishing-maven-plugin</artifactId>
                <version>0.5.0</version>
                <extensions>true</extensions>
                <configuration>
                    <!-- 这里的id是跟settings.xml中对应的! -->
                    <publishingServerId>sonatype</publishingServerId>
                    <checksums>required</checksums>
                    <!-- 发布信息(最好自定义一下) -->
                    <deploymentName>Sunrays-Framework 企业级Java脚手架</deploymentName>
                </configuration>
            </plugin>

            <!-- 下面几个都是通用的 -->
            <!-- maven-source-plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- maven-javadoc-plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.4.1</version>
                <!-- 支持三个自定义标签 -->
                <configuration>
                    <additionalOptions>
                        <arg>-tag</arg>
                        <arg>Author:a:"Author"</arg>
                        <arg>-tag</arg>
                        <arg>Create:a:"Create"</arg>
                        <arg>-tag</arg>
                        <arg>Version:a:"Version"</arg>
                    </additionalOptions>
                </configuration>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- maven-gpg-plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
                <version>3.2.4</version>
                <executions>
                    <execution>
                        <id>sign-artifacts</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
3.完整的pom.xml
<?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>

    <groupId>cn.sunxiansheng</groupId>
    <artifactId>sunrays-dependencies</artifactId>
    <version>0.0.5</version>

    <!-- 项目名 -->
    <name>${project.groupId}:${project.artifactId}</name>
    <!-- 简单描述 -->
    <description>统一管理依赖,本项目的所有模块都要直接或者间接的继承该模块</description>
    <!-- 开源地址 -->
    <url>https://gitee.com/qyxinhua_0/sunrays-framework/tree/master/sunrays-dependencies</url>

    <!-- <packaging>pom</packaging> 被设置为 pom 时,这表示该项目是一个 管理依赖的项目 或 聚合项目 -->
    <packaging>pom</packaging>

    <properties>
        <!-- 指定编译版本 -->
        <java.version>1.8</java.version>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!-- 指定版本号 -->
        <lombok.version>1.18.16</lombok.version>
        <spring-boot.version>2.4.2</spring-boot.version>
        <spring-cloud.version>2020.0.1</spring-cloud.version>
        <spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version>
        <druid.version>1.2.8</druid.version>
        <mybatis-plus.version>3.5.3</mybatis-plus.version>
        <transmittable-thread-local.version>2.12.4</transmittable-thread-local.version>
        <mapstruct.version>1.4.2.Final</mapstruct.version>
        <minio.version>8.5.14</minio.version>
        <okhttp.version>4.11.0</okhttp.version>
        <javaparser.version>3.25.4</javaparser.version>
        <servlet-api.version>2.5</servlet-api.version>
        <java-dotenv.version>5.2.2</java-dotenv.version>
    </properties>

    <!-- 统一指定版本 -->
    <dependencyManagement>
        <dependencies>
            <!-- Spring Boot -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <!-- 下面两个配置表示导入spring-boot-dependencies的dependencyManagement的版本 -->
                <type>pom</type>
                <scope>import</scope>
            </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>
            <!--  Spring Cloud Alibaba -->
            <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>
            <!-- druid连接池 -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>${druid.version}</version>
            </dependency>
            <!-- mybatis-plus -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>${mybatis-plus.version}</version>
            </dependency>
            <!-- transmittable-thread-local -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>transmittable-thread-local</artifactId>
                <version>${transmittable-thread-local.version}</version>
            </dependency>
            <!-- mapstruct -->
            <dependency>
                <groupId>org.mapstruct</groupId>
                <artifactId>mapstruct</artifactId>
                <version>${mapstruct.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mapstruct</groupId>
                <artifactId>mapstruct-processor</artifactId>
                <version>${mapstruct.version}</version>
            </dependency>
            <!-- minio -->
            <dependency>
                <groupId>io.minio</groupId>
                <artifactId>minio</artifactId>
                <version>${minio.version}</version>
            </dependency>
            <!-- okhttp必须升级到这个版本 -->
            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>okhttp</artifactId>
                <version>${okhttp.version}</version>
            </dependency>
            <!-- javaparser解析java代码,读取指定方法 -->
            <dependency>
                <groupId>com.github.javaparser</groupId>
                <artifactId>javaparser-core</artifactId>
                <version>${javaparser.version}</version>
            </dependency>
            <!-- SpringBoot2.4.2对应的Servlet的API -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>${servlet-api.version}</version>
            </dependency>
            <!-- 可以使用.env文件提前加载配置,确保数据安全 -->
            <dependency>
                <groupId>io.github.cdimascio</groupId>
                <artifactId>java-dotenv</artifactId>
                <version>${java-dotenv.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!--指定通用依赖-->
    <dependencies>
        <!-- lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!-- mapstruct -->
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-processor</artifactId>
        </dependency>
        <!-- commons-lang3 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <!-- gson -->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
        </dependency>
    </dependencies>

    <!-- 阿里云仓库,在父模块中配置仓库,可以使得所有子模块自动继承这个配置,这样在多模块项目中,每个模块无需单独配置仓库信息,便于管理和维护。 -->
    <repositories>
        <repository>
            <id>central</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <layout>default</layout>
            <!-- 是否开启发布版构件下载 -->
            <releases>
                <enabled>true</enabled>
            </releases>
            <!-- 是否开启快照版构件下载 -->
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

    <!-- 发布到Maven中央仓库需要的配置1 -->
    <!-- 开源协议 -->
    <licenses>
        <license>
            <name>MIT License</name>
            <url>http://www.opensource.org/licenses/mit-license.php</url>
        </license>
    </licenses>

    <!-- 开发者配置 -->
    <developers>
        <developer>
            <name>sxs</name>
            <email>xxx.com</email>
            <!-- url是个人主页的地址 -->
            <url>https://sunweb.blog.csdn.net/</url>
        </developer>
    </developers>

    <!-- 源码仓库相关配置 -->
    <scm>
        <!-- 只读连接 -->
        <connection>scm:git:git://gitee.com/qyxinhua_0/sunrays-framework.git</connection>
        <!-- 开发者连接 (SSH) -->
        <developerConnection>scm:git:git@gitee.com:qyxinhua_0/sunrays-framework.git</developerConnection>
        <!-- 仓库浏览 URL -->
        <url>https://gitee.com/qyxinhua_0/sunrays-framework</url>
    </scm>
    <!-- 发布到Maven中央仓库需要的配置1 -->

    <!-- 构建项目通用配置 -->
    <build>
        <!-- maven的编译插件(配置注解处理器) -->
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <!-- maven编译插件版本号 -->
                <version>3.8.1</version>
                <configuration>
                    <!-- 配置注解处理器(比如Lombok和MapStruct) -->
                    <annotationProcessorPaths>
                        <!-- Lombok 注解处理器 -->
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>${lombok.version}</version>
                        </path>
                        <!-- MapStruct 注解处理器 -->
                        <path>
                            <groupId>org.mapstruct</groupId>
                            <artifactId>mapstruct-processor</artifactId>
                            <version>${mapstruct.version}</version>
                        </path>
                        <!-- 只要配置了annotationProcessorPaths就必须配置,否则自定义starter的yml没有提示!!! -->
                        <path>
                            <groupId>org.springframework.boot</groupId>
                            <artifactId>spring-boot-configuration-processor</artifactId>
                            <version>${spring-boot.version}</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>
            <!--多模块Maven项目统一修改版本号-->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>versions-maven-plugin</artifactId>
                <version>2.8.1</version>
                <configuration>
                    <generateBackupPoms>false</generateBackupPoms>
                </configuration>
            </plugin>

            <!-- 发布到Maven中央仓库需要的配置2 -->
            <!-- central发布插件(需要配置!!!) -->
            <plugin>
                <groupId>org.sonatype.central</groupId>
                <artifactId>central-publishing-maven-plugin</artifactId>
                <version>0.5.0</version>
                <extensions>true</extensions>
                <configuration>
                    <!-- 这里的id是跟settings.xml中对应的! -->
                    <publishingServerId>sonatype</publishingServerId>
                    <checksums>required</checksums>
                    <!-- 发布信息(最好自定义一下) -->
                    <deploymentName>Sunrays-Framework 企业级Java脚手架</deploymentName>
                </configuration>
            </plugin>

            <!-- 下面几个都是通用的 -->
            <!-- maven-source-plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- maven-javadoc-plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.4.1</version>
                <!-- 支持三个自定义标签 -->
                <configuration>
                    <additionalOptions>
                        <arg>-tag</arg>
                        <arg>Author:a:"Author"</arg>
                        <arg>-tag</arg>
                        <arg>Create:a:"Create"</arg>
                        <arg>-tag</arg>
                        <arg>Version:a:"Version"</arg>
                    </additionalOptions>
                </configuration>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- maven-gpg-plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
                <version>3.2.4</version>
                <executions>
                    <execution>
                        <id>sign-artifacts</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <resources>
            <!-- 配置资源文件,这里主要是指 src/main/resources 目录 -->
            <resource>
                <directory>src/main/resources</directory>
                <!-- 配置了这个,则 Maven 的环境变量就可以填充到 application-xxx.yml 中(用 $ 符号取),可用于环境隔离 -->
                <filtering>true</filtering>
            </resource>
            <!-- 可选:如果项目中有需要打包的 XML 文件,可以添加这部分配置 -->
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
        <!-- 统一指定打包插件版本(与SpringBoot一致) -->
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>${spring-boot.version}</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <!-- maven的环境变量env-flag的值为具体的值 -->
    <profiles>
        <!-- 开发 -->
        <profile>
            <!-- id(不重复即可) -->
            <id>dev</id>
            <properties>
                <env-flag>dev</env-flag>
            </properties>
            <!-- 默认为dev -->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <!-- 测试 -->
        <profile>
            <id>test</id>
            <properties>
                <env-flag>test</env-flag>
            </properties>
        </profile>
        <!-- 生产 -->
        <profile>
            <id>prod</id>
            <properties>
                <env-flag>prod</env-flag>
            </properties>
        </profile>
    </profiles>
</project>
2.sunrays-framework(统一管理子模块)
1.继承sunrays-dependencies
<parent>
    <groupId>cn.sunxiansheng</groupId>
    <artifactId>sunrays-dependencies</artifactId>
    <version>0.0.5</version>
    <!-- 当要继承的模块不是目录中的当前模块的父模块时使用 -->
    <relativePath/>
</parent>

<artifactId>sunrays-framework</artifactId>
<!-- 这里必须指定自己的版本,否则使用mvn versions 设置版本的时候会有问题 -->
<version>0.0.5</version>
2.发布基本配置
<!-- 项目名 -->
<name>${project.groupId}:${project.artifactId}</name>
<!-- 简单描述 -->
<description>统一管理整个项目的打包操作</description>
<!-- 开源地址 -->
<url>https://gitee.com/qyxinhua_0/sunrays-framework</url>
3.完整的pom.xml
<?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.sunxiansheng</groupId>
        <artifactId>sunrays-dependencies</artifactId>
        <version>0.0.5</version>
        <!-- 当要继承的模块不是目录中的当前模块的父模块时使用 -->
        <relativePath/>
    </parent>

    <artifactId>sunrays-framework</artifactId>
    <!-- 这里必须指定自己的版本,否则使用mvn versions 设置版本的时候会有问题 -->
    <version>0.0.5</version>

    <!-- 项目名 -->
    <name>${project.groupId}:${project.artifactId}</name>
    <!-- 简单描述 -->
    <description>统一管理整个项目的打包操作</description>
    <!-- 开源地址 -->
    <url>https://gitee.com/qyxinhua_0/sunrays-framework</url>

    <!-- 统一管理子模块 -->
    <packaging>pom</packaging>
    <modules>
        <module>sunrays-common-demo</module>
        <module>sunrays-common</module>
        <module>sunrays-combinations</module>
        <module>sunrays-common-cloud</module>
        <module>sunrays-combinations-demo</module>
    </modules>
</project>
3.其余模块都继承sunrays-framework,如果需要发布,则需要填写发布基本配置

CleanShot 2025-01-12 at 12.33.08@2x

CleanShot 2025-01-12 at 12.35.24@2x

2.切换版本并发布到本地仓库

1.修改sunrays-dependencies的版本为0.0.6

CleanShot 2025-01-12 at 12.36.42@2x

2.修改sunrays-framework继承的版本也为0.0.6

CleanShot 2025-01-12 at 12.38.44@2x

3.将sunrays-dependencies模块发布到本地仓库,直接clean install

CleanShot 2025-01-12 at 12.41.56@2x

CleanShot 2025-01-12 at 12.42.01@2x

4.sunrays-framework 下使用maven 插件统一切换版本为0.0.6
mvn versions:set -DnewVersion=0.0.6 -DprocessAllModules=true 

CleanShot 2025-01-12 at 12.42.23@2x

5.按照以下顺序发布到本地仓库
1.sunrays-framework 只发布父模块
mvn clean install -N

CleanShot 2025-01-12 at 12.44.24@2x

2.sunrays-common 直接clean install
3.sunrays-common-cloud 直接clean install
4.sunrays-combinations 直接clean install
5.sunrays-common-demo 直接clean install
6.sunrays-combinations-demo 直接clean install
7.最后sunrays-framework再clean install一下

3.发布到远程仓库

1.sunrays-dependencies 直接发布 mvn clean deploy

CleanShot 2025-01-12 at 12.55.47@2x

2.点击publish(一定要等到变绿再进行下一步!!!)

https://central.sonatype.com/publishing/deployments

CleanShot 2025-01-12 at 12.56.40@2x

CleanShot 2025-01-12 at 13.07.39@2x

3.sunrays-framework 单独发布 mvn clean deploy -N

CleanShot 2025-01-12 at 13.08.31@2x

4.依然点击publish(一定要等到变绿再进行下一步!!!)

https://central.sonatype.com/publishing/deployments

CleanShot 2025-01-12 at 13.39.32@2x

5.发布sunrays-common-cloud模块,直接发布即可
6.发布sunrays-common模块,也是直接发布
7.全部发布后,点击Publish,等待变绿

4.测试使用

1.新建一个Maven项目

CleanShot 2025-01-12 at 13.47.25@2x

2.在pom中直接使用sunrays-dependencies进行依赖管理
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>cn.sunxiansheng</groupId>
                <artifactId>sunrays-dependencies</artifactId>
                <version>0.0.6</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
3.引入依赖
<?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>

    <groupId>com.demo</groupId>
    <artifactId>sunrays-framework-demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>cn.sunxiansheng</groupId>
                <artifactId>sunrays-dependencies</artifactId>
                <version>0.0.6</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <!-- 日志模块 -->
        <dependency>
            <groupId>cn.sunxiansheng</groupId>
            <artifactId>common-log4j2-starter</artifactId>
            <version>0.0.6</version>
        </dependency>
        <!-- web模块 -->
        <dependency>
            <groupId>cn.sunxiansheng</groupId>
            <artifactId>common-web-starter</artifactId>
            <version>0.0.6</version>
        </dependency>
    </dependencies>

</project>
4.application.yml 配置日志存储根目录默认./logs
sun-rays:
  log4j2:
    home: /Users/sunxiansheng/IdeaProjects/demo/sunrays-framework-demo/logs # 日志存储根目录
5.SunraysApplication.java 启动类
package com.demo.sunrays;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * Description:
 *
 * @Author sun
 * @Create 2025/1/12 13:53
 * @Version 1.0
 */
@SpringBootApplication
public class SunraysApplication {

    public static void main(String[] args) {
        SpringApplication.run(SunraysApplication.class, args);
    }
}
6.编写controller
package com.demo.sunrays.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Description:
 *
 * @Author sun
 * @Create 2025/1/12 13:55
 * @Version 1.0
 */
@RestController
public class SunraysController {
    
    @RequestMapping("/sunrays")
    public String sunrays() {
        return "sunrays";
    }
}
7.测试,自动打印出参入参

CleanShot 2025-01-12 at 13.56.17@2x

CleanShot 2025-01-12 at 13.56.37@2x


http://www.kler.cn/a/529136.html

相关文章:

  • Github 2025-02-01 开源项目月报 Top20
  • Linux系统上安装与配置 MySQL( CentOS 7 )
  • lstm代码解析1.2
  • springboot集成钉钉,发送钉钉日报
  • CSS核心
  • redis数据安全与性能保障
  • Java篇之继承
  • Flink报错Caused by: java.io.FileNotFoundException: /home/wc.txt
  • Ubuntu16.04编译安装Cartographer 1.0版本
  • NoteGen:记录、写作与AI融合的跨端笔记应用
  • Java开发vscode环境搭建(二)-项目启动补充
  • XML DOM 获取节点值
  • S4 HANA给科目分配允许记账的税码
  • FLTK - FLTK1.4.1 - demo - arc
  • 【愚公系列】《循序渐进Vue.js 3.x前端开发实践》042-Vite工具入门
  • Python之Excel操作 - 读取数据
  • neo4j初识
  • ASP.NET Core自定义 MIME 类型配置
  • 415.字符串相加
  • [SAP ABAP] ALV报表练习3
  • 跨组织环境下 MQTT 桥接架构的评估
  • mac安装wireshark
  • 图书管理系统 Axios 源码__新增图书
  • K近邻算法
  • OSCP - Proving Grounds - Jordak
  • GenAI 在金融服务领域的应用:2025 年的重点是什么