jeecgboot的jar分离打包部署

发布时间 2023-04-28 16:58:18作者: 令狐hero

  因为jeecgboot单体应用打包的jar包太大了,得200M左右,每次更新后上传云服务器有点费劲,所以看了官网有分离打包部署的方法,但是按照官网的步骤啊,发现会出现问题,我现在把我最后成功的配置写下来,我的版本是jeecg-boot-2.4.6,如果其他版本就只能参考下了。

  主要是修改jeecg-boot-module-system模块的pom.xml文件,因为我是用这个模块启动的,作为单体应用的jar包。配置如下:

  <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.5.RELEASE</version>
                <configuration>
                    <mainClass>org.jeecg.JeecgSystemApplication</mainClass>
                    <layout>ZIP</layout>
                    <includes>
                        <include>
                            <groupId>nothing</groupId>
                            <artifactId>nothing</artifactId>
                        </include>
                    </includes>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- 该插件的作用是复制依赖的jar包到指定的文件夹里 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>${maven-dependency-plugin.version}</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/lib/</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- 该插件的作用是复制指定的文件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>${maven-resources-plugin.version}</version>
                <!--开启后jks文件不过滤,https访问时打开该配置-->
                <!--<configuration>
                    <nonFilteredFileExtensions>
                        <nonFilteredFileExtension>jks</nonFilteredFileExtension>
                    </nonFilteredFileExtensions>
                </configuration>-->
                <executions>
                    <!-- 复制配置文件 -->
                    <execution>
                        <id>copy-resources</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <resources>
                                <!--复制资源文件到外部,注意这里先不做filtering处理,防止某些静态文件损坏-->
                                <resource>
                                    <filtering>false</filtering>
                                    <directory>src/main/resources</directory>
                                    <includes>
                                        <include>**/*</include>
                                    </includes>
                                </resource>
                                <!--仅针对配置文件filtering处理(占位符@@等)-->
                                <resource>
                                    <directory>src/main/resources</directory>
                                    <filtering>true</filtering>
                                    <includes>
                                        <include>*.xml</include>
                                        <include>*.yml</include>
                                        <include>*.properties</include>
                                    </includes>
                                </resource>
                            </resources>
                            <outputDirectory>${project.build.directory}/config</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

  上面的插件我都加上了版本号了,因为不加的话我的INTELJ IDEA会报错,不影响但是不爽,所以加上了版本号去掉报错信息。  

  这样mvn clean install之后会在jeecg-boot-module-system模块的target目录下生成几个文件夹,jxyey-boot-module-system-2.4.6.jar的大小才6m多,方便上传发布。

 

  如何部署呢

  把上图圈出来的三个文件上传到云服务器上去,假如放在/data/jeecg-boot-module-system/目录下,那么启动命令如下:

cd /data/jeecg-boot-module-system/
nohup java -Dloader.path=lib,config -jar jeecg-boot-module-system-2.4.6.jar >jeecg-001.log 2>&1 &

  要确保云服务器的java版本是1.8版本的,java -version