微服务项目打包 lib 包外置配置

2021年07月19日 117点热度 0人点赞 0条评论

前言

公司项目使用的 springcloud 微服务,打包后上线巨慢,因为每个项目都引用了很多 jar,上传到服务器的时候速度感人,但是其中很多项目用到了一样的 jar ,发现有一种 lib jar 包外置方式,先把 所有 jar 包放在一个文件夹里面,上传到服务器后,只要 pom 里面没有新的依赖就不需要更新 lib 包,如果有新的依赖也只需要增加新的 jar 文件就行了。

下面在 pom.xml 中设置 build 参数,就可以实现 打包的时候,在同级目录 外置 libs 包。项目本体 jar 就特别小,大大加快上线效率。

代码

    <build>


        <finalName>design-assess</finalName>
        <plugins>
            <!-- 打jar包 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <!-- 生成的jar中,包含pom.xml和pom.properties这两个文件 -->
                        <addMavenDescriptor>true</addMavenDescriptor>
                        <manifest>
                            <!-- 指定Springboot程序启动类 -->
                            <mainClass>com.pip.designassess.DesignAssessApplication</mainClass>
                            <!-- 为依赖包添加路径, 这些路径会写在MANIFEST文件的Class-Path下 -->
                            <addClasspath>true</addClasspath>
                            <!-- 指定依赖的jar包相对于本程序lib的位置 -->
                            <classpathPrefix>libs/</classpathPrefix>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>

            <!-- 该插件的作用是用于复制依赖的jar包到指定的文件夹里,如果依赖改变了,将改变的jar放到服务器对应目录libs下 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <type>jar</type>
                            <includeTypes>jar</includeTypes>
                            <useBaseVersion>false</useBaseVersion>
                            <outputDirectory>
                                ${project.build.directory}/libs
                            </outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>



    </build>

效果

浮生一程

读书-行路-悦人-识物