• 精简100倍的jar打包方法


    1. 使用插件配置

    1. <plugin>
    2. <groupId>org.springframework.boot</groupId>
    3. <artifactId>spring-boot-maven-plugin</artifactId>
    4. <configuration>
    5. <outputDirectory>
    6. <--我放到父目录方便找-->
    7. ${project.parent.basedir}/zjar
    8. </outputDirectory>
    9. <--重要 不然在找不到main入口-->
    10. <layout>ZIP</layout>
    11. <includes>
    12. <!--这里是填写经常变动的jar,一般都是自己的包模块-->
    13. <!--如果没有取消这里的注释 non-exists-->
    14. <!-- <include>-->
    15. <!-- <groupId>non-exists</groupId>-->
    16. <!-- <artifactId>non-exists</artifactId>-->
    17. <!-- </include>-->
    18. <include>
    19. <groupId>com.sosocom 自己的包</groupId>
    20. <artifactId>ability-base</artifactId>
    21. </include>
    22. </includes>
    23. </configuration>
    24. </plugin>
    1. <!--此插件用于将依赖包抽出-->
    2. <plugin>
    3. <groupId>org.apache.maven.plugins</groupId>
    4. <artifactId>maven-dependency-plugin</artifactId>
    5. <executions>
    6. <execution>
    7. <id>copy-dependencies</id>
    8. <phase>package</phase>
    9. <goals>
    10. <goal>copy-dependencies</goal>
    11. </goals>
    12. <configuration>
    13. <outputDirectory>
    14. ${project.parent.basedir}/zjar/lib
    15. </outputDirectory>
    16. <excludeTransitive>false</excludeTransitive>
    17. <stripVersion>false</stripVersion>
    18. <includeScope>runtime</includeScope>
    19. <!--这里特别重要 要加上, 不然你那些频繁改动,自己的包,发现项目里并不生效-->
    20. <excludeGroupIds>com.sosocom</excludeGroupIds>
    21. </configuration>
    22. </execution>
    23. </executions>
    24. </plugin>

    抽离插件

    1. <!--此插件用于将依赖包抽出-->
    2. <plugin>
    3. <groupId>org.apache.maven.plugins</groupId>
    4. <artifactId>maven-dependency-plugin</artifactId>
    5. <executions>
    6. <execution>
    7. <id>copy-dependencies</id>
    8. <phase>package</phase>
    9. <goals>
    10. <goal>copy-dependencies</goal>
    11. </goals>
    12. <configuration>
    13. <outputDirectory>
    14. ${project.parent.basedir}/zjar/lib
    15. </outputDirectory>
    16. <excludeTransitive>false</excludeTransitive>
    17. <stripVersion>false</stripVersion>
    18. <includeScope>runtime</includeScope>
    19. <!--这里特别重要 要加上, 不然你那些频繁改动,自己的包,发现项目里并不生效-->
    20. <excludeGroupIds>com.sosocom</excludeGroupIds>
    21. </configuration>
    22. </execution>
    23. </executions>
    24. </plugin>

    执行打包,  mvn clean package; 

    生成的lib文件夹,上传到服务器,将来就不怎么需要上传了。

    服务器启动命令
    使用-D 指定库

    java -Dloader.path=/root/lib -jar /root/test.jar > /dev/null 2>&1 &

    以后每次打包只需上传jar, 就可以了。 小了差不多100倍, 上传巨快

  • 相关阅读:
    天然气下游大数据技术研究与应用综述
    单链表相关面试题--3.链表的中间节点
    肖sir___面试就业课程____app
    【Python实战】——Python+Opencv是实现车牌自动识别
    GPU使用和管理经验
    区块链正在开启一场回归商业,融合商业的新发展
    开源在大数据和分析中的角色
    C++(第一篇):C++基础入门知识
    【docker】容器概述、docker概述、镜像/docker基本命令
    基于arduino uno + L298 的直流电机驱动proteus仿真设计
  • 原文地址:https://blog.csdn.net/qq_40662918/article/details/133824524