• 精简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倍, 上传巨快

  • 相关阅读:
    springboot+canal+mysql+redis缓存双写一致性
    8.0 Python 使用进程与线程
    Shiro 权限绕过漏洞(CVE-2020-1957)
    day33 文件上传&中间件解析漏洞&编辑器安全
    【Python3】Python中的字符串
    第七天:gec6818开发板QT和Ubuntu中QT安装连接sqlite3数据库驱动环境保姆教程
    Linux(二)
    C#线程入门
    Redis BitMap+SpringBoot 实现签到与统计功能
    手摸手带你撸一个拖拽效果
  • 原文地址:https://blog.csdn.net/qq_40662918/article/details/133824524