首页
  • 2024.1.1.0
  • 2024.1.1.1
  • 2024.1.2.0
  • 2024.1.3.0
  • Java
  • Linux
  • Deploy
  • Application
关于
友情链接
GitHub (opens new window)

Xiao ku

板砖师傅
首页
  • 2024.1.1.0
  • 2024.1.1.1
  • 2024.1.2.0
  • 2024.1.3.0
  • Java
  • Linux
  • Deploy
  • Application
关于
友情链接
GitHub (opens new window)
  • 版本日志
  • 贡献清单
  • 2024.1.3.0

    • Simple-Starter概述
    • 自动装配模块

      • simple-starter-web
      • simple-starter-redisson
      • simple-starter-s3
      • simple-starter-socketio
      • simple-starter-grpc
      • simple-starter-datasource
      • simple-starter-freemarker
      • simple-starter-cloud
      • simple-starter-encrypt
      • simple-starter-dict
      • simple-starter-email
      • simple-starter-gateway
      • simple-starter-package
        • 简介
        • 模板源码
        • 使用说明
          • Pom.xml文件
          • 父类
          • 版本标识
          • 依赖引入
          • 依赖声明
          • 构建配置-必填
          • 构建配置-可选
          • 配置文件
          • 效果如下
    • 服务类模块

    • 工具类模块

  • 2024.1.2.0

  • 2024.1.1.1

  • 2024.1.1.0

  • OpenSource
  • 2024.1.3.0
  • 自动装配模块
xiaoku
2023-10-12
目录

simple-starter-package

# 简介

自定义Maven构建打包逻辑,将常用脚本及可执行文件统一打包
在执行mvn package或mvn install时打包出 xxx--deploy.zip部署压缩包
压缩包包含:服务启动脚本、可执行Jar包、配置文件、git版本文件(可选)

文件名 功能 说明
application.yml 配置文件 工程源码中的配置文件
config 配置文件夹(可选) 工程配置源码中的文件夹-目录下为子配置文件
docker-compose.yml Docker编排文件 网络模式为Host,将配置文件映射进容器中
Dockerfile Docker镜像构建文件 基于openjdk:17-oracle
git.properties git版本文件(可选) 输出构建时的Git版本信息
Readme.md 操作说明 各脚本使用方式说明
shell_java_start.sh Shell启动脚本 使用原生Java命令启动
shell_java_stop.sh Shell关闭脚本 根据运行Pid进行关闭进程
xxx-exec.jar Jar源文件 可执行Jar包
win_java_start.bat Windows启动脚本 使用原生Java命令启动

# 模板源码

参考模块:
simple-demo-package (opens new window)

# 使用说明

# Pom.xml文件

# 父类

方式一:
需要继承spring-boot-starter-parent
原因:resources资源文件下的启动脚本中使用 Pom.xml变量 "@xx@"

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>xxxx</version>
    </parent>
1
2
3
4
5

# 版本标识

需要声明本工程版本号
原因:docker启动脚本中构建容器版本需使用变量@project.version@

    <version>2023.5.2.0-SNAPSHOT</version>
1

# 依赖引入

需要引入simple-starter-package依赖
原因:使用依赖中的resources文件夹下的资源文件

文件名 功能 说明
docker-compose.yml Docker编排文件(引用Pom.xml变量) 首次启动将自动构建镜像,若在版本不变下需要更新镜像需先移除镜像
Dockerfile Docker镜像构建文件(引用Pom.xml变量) 基于openjdk:17-oracle,将可执行Jar包复制进镜像中运行
logback-spring.xml 日志配置 配置按照每天生成日志文件
Readme.md 操作说明(引用Pom.xml变量) 各脚本使用方式说明
shell_java_start.sh Shell启动脚本(引用Pom.xml变量) 使用原生Java命令启动,运行可执行Jar包
shell_java_stop.sh Shell关闭脚本(引用Pom.xml变量) 根据运行Pid进行关闭进程
win_java_start.bat Windows启动脚本(引用Pom.xml变量) 使用原生Java命令启动,运行可执行Jar包
        <dependency>
            <groupId>cn.iosd</groupId>
            <artifactId>simple-starter-package</artifactId>
        </dependency>
1
2
3
4

# 依赖声明

使用依赖声明,可减免依赖引入时都需要配置版本号

    <!-- 依赖声明 -->
    <dependencyManagement>
        <dependencies>
            <!-- SimpleDependencies 依赖配置 -->
            <dependency>
                <groupId>cn.iosd</groupId>
                <artifactId>simple-dependencies</artifactId>
                <version>${ok-simple.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
1
2
3
4
5
6
7
8
9
10
11
12
13

# 构建配置-必填

指定finalName:原因为各脚本有将构建出的可执行jar进行操作
指定classifier为exec:原因为各脚本有将构建出的可执行jar(包含后缀exec)进行操作
插件maven-assembly-plugin:引入自定义压缩包逻辑文件
插件声明pluginManagement:指定使用自定义压缩包逻辑文件-此声明可放置在一级Pom中,子工程便不需要再写

    <build>
        <finalName>${project.artifactId}</finalName>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <includeSystemScope>true</includeSystemScope>
                    <!-- SpringBoot多模块打包:spring-boot工程打包编译时,会生成两种jar包,一种是普通的jar,另一种是可执行jar-->
                    <classifier>exec</classifier>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <dependencies>
                    <!-- 包含simple-assembly文件,自定义压缩包逻辑 -->
                    <dependency>
                        <groupId>cn.iosd</groupId>
                        <artifactId>simple-starter-package</artifactId>
                        <version>${ok-simple.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>

        <pluginManagement>
            <plugins>
			    <!-- 插件声明 可放在首层 指定使用simple-assembly -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>deploy</id>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                            <configuration>
                                <finalName>${project.artifactId}</finalName>
                                <descriptorRefs>
                                    <descriptorRef>simple-assembly</descriptorRef>
                                </descriptorRefs>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

# 构建配置-可选

可选构建时增加输出增加git版本文件

            <!-- 构建输出增加git版本文件 -->
            <plugin>
                <groupId>io.github.git-commit-id</groupId>
                <artifactId>git-commit-id-maven-plugin</artifactId>
            </plugin>
1
2
3
4
5

若父类不是继承 spring-boot-starter-parent 则需要在 插件声明中添加

                <!-- 插件声明 可放在首层 打包时生成git.properties(可选) -->
                <plugin>
                    <groupId>io.github.git-commit-id</groupId>
                    <artifactId>git-commit-id-maven-plugin</artifactId>
                    <version>5.0.1</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>revision</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <verbose>true</verbose>
                        <dateFormat>yyyy-MM-dd'T'HH:mm:ssZ</dateFormat>
                        <generateGitPropertiesFile>true</generateGitPropertiesFile>
                        <generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties</generateGitPropertiesFilename>
                    </configuration>
                </plugin>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 配置文件

把项目配置文件复制到压缩包中,resources资源夹列表如下

resources
|--application.yml 配置文件
|--config          配置文件夹下所有文件
   |--*.*           
1
2
3
4

# 效果如下

执行 mvn install后在target目录下生成xxx-deploy.zip部署包 效果图

上次更新: 2024/03/25, 02:28:08
simple-starter-gateway
simple-base-config

← simple-starter-gateway simple-base-config→

Copyright © 2019-2024
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式