首页 > 其他分享 >maven 分离打包的技术

maven 分离打包的技术

时间:2022-10-26 23:33:37浏览次数:52  
标签:plugin -- 分离 jar maven 打包 resources

1.概要

我们在构建springboot 程序的时候,可以将所有的文件打包成一个大的文件,这个使用起来还是很方便的,但是有些情况下不是很方便,比如 程序需要经常更新的时候,通过网络传输就比较慢,还有比如,我们有一些的微服务,这个时候大部分的jar都是相同的,这个时候如果,只打包我们自己开发的部分,那么这个包就会很小。其实我们可以使用maven 分离打包的技术将 依赖和资源文件分离打包。

2. 操作步骤

2.1 我们编辑 pom.xml 文件

我们在pom.xml 中增加一个 profile,下面的代码就是负责分离打包。

<profiles>
        <profile>
            <id>分离打包</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-jar-plugin</artifactId>
                        <configuration>
                            <!-- 包含文件配置,现在只打包 com 文件夹 -->
<!--                            <includes>-->
<!--                                <include>-->
<!--                                    **/com/**-->
<!--                                </include>-->
<!--                            </includes>-->

                            <archive>
                                <manifest>
                                    <!-- 配置加入依赖包 -->
                                    <addClasspath>true</addClasspath>
                                    <classpathPrefix>lib/</classpathPrefix>
                                    <useUniqueVersions>false</useUniqueVersions>
                                    <!-- Spring Boot 启动类(自行修改) -->
                                    <mainClass>com.misoft.JPaasDemoApplication</mainClass>
                                </manifest>
                                <manifestEntries>
                                    <!-- 外部资源路径加入 manifest.mf 的 Class-Path -->
                                    <Class-Path>resources/</Class-Path>
                                </manifestEntries>
                            </archive>
                            <!-- jar 输出目录 -->
                            <outputDirectory>${project.build.directory}/fastjar/</outputDirectory>
                        </configuration>
                    </plugin>
                    <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>
                                    <!-- 依赖包 输出目录 -->
                                    <outputDirectory>${project.build.directory}/fastjar/lib</outputDirectory>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-resources-plugin</artifactId>
                        <!-- 复制资源 -->
                        <executions>
                            <execution>
                                <id>copy-resources</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>copy-resources</goal>
                                </goals>
                                <configuration>
                                    <resources>
                                        <resource>
                                            <directory>src/main/resources</directory>
                                        </resource>
                                    </resources>
                                    <!-- 资源文件 输出目录 -->
                                    <outputDirectory>${project.build.directory}/fastjar/resources</outputDirectory>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <configuration>
                            <source>8</source>
                            <target>8</target>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

上面代码的意思是

  1. maven-compiler-plugin
    使用 1.8 对对代码进行编译。
  2. maven-jar-plugin
    使用 jar 插件,打包我们自己开发的程序
  3. maven-dependency-plugin
    使用依赖插件,将我们的依赖包拷贝到 fastjar/lib 目录
  4. maven-resources-plugin
    使用资源插件将资源文件考本到资源目录下面。

2.2 打包

增加 profile 后 我们可以在IDEA 中看到

image

打包时,勾选分离打包。

打包后:
image

我们也可以使用命令行进行打包。

mvn clean package -P 分离打包

2.3 启动程序

因为打包成份数的文件了,我们怎么启动这个程序呢?

我们可以使用如下命令进行启动。

java -Xms256m -Xmx512m -Xmn256m -jar ./jpaas-demo.jar --nacos.address=localhost:8848 --nacos.namespace=local --spring.config.additional-location=resources/ --logging.config=resources/logback-spring.xml

启动后,我们可以观察nacos。

image

标签:plugin,--,分离,jar,maven,打包,resources
From: https://www.cnblogs.com/yg_zhang/p/16830577.html

相关文章

  • Winform打包
    1、下载打包工具扩展-->管理扩展-->搜索InstallerProject下载后,要退出vs,会自动安装2、用vs2010打开c#项目,右键点击项目解决方案名称,在弹出的菜单框中选择【添加】→......
  • 10-6-华为云OBS大数据存算分离方案,助力企业顺利实现数字化转型!
    华为云OBS大数据存算分离方案,助力企业顺利实现数字化转型!随着大数据技术的飞速发展,人们对数据价值的认识逐渐加深,进而对大数据产生了前所未有的重视。当下,大数据更是凭借着......
  • 10-6-华为云OBS大数据存算分离方案,助力企业顺利实现数字化转型!
    华为云OBS大数据存算分离方案,助力企业顺利实现数字化转型!随着大数据技术的飞速发展,人们对数据价值的认识逐渐加深,进而对大数据产生了前所未有的重视。当下,大数据更是凭借......
  • Mysql主从复制读写分离
    Mysql主从复制读写分离一.主从复制原理1、主从复制作用和特点1)主从复制的作用保证数据的一致性和完整性2)特点避免数据库单节点故障数据丢失增强可靠性增强稳定性2、主从复制......
  • Webpack完整打包流程分析
    前言webpack在前端工程领域起到了中流砥柱的作用,理解它的内部实现机制会对你的工程建设提供很大的帮助(不论是定制功能还是优化打包)。下面我们基于webpack5源码结构,对......
  • nginx动静分离 性能对比
    压力测试工具:jmeter1将静态资源放在后端服务上,测试以下测试参数   2测试报告吞吐量1.5   3将静态资源放在nginx上,设置以下参数   4测试报告......
  • Maven使用中的问题总结
    Idea配合Maven使用中有时遇到莫名奇妙的问题,又莫名奇妙的恢复正常。整理三板斧如下:1、删除系统环境变量Maven_Home,只需在IDEA中指定Maven及settings.xml即可。  有......
  • 如何为Maven WEB项目创建tomcat服务器
    创建一个MavenWeb项目点击链接:【图文详解】用Eclipse创建MavenWeb项目  在为MavenWeb项目创建tomcat服务器启动项目之前,不要乱填服务器!不要乱填服务器!不要乱填服务......
  • IDEA创建好Maven项目后没有Artifacts
    IDEA创建好Maven项目后,在配置tomcat的时候,没有Artifacts选项。这个可能是由于在创建项目的时候,忘记勾选某些Maven选项导致的。 解决办法也比较简单:File—>setting—>......
  • linux的tar是打包
    .tar解包:tarxvfFileName.tar打包:tarcvfFileName.tarDirName(注:tar是打包,不是压缩!)---------------------------------------------.gz解压1:gu......