Maven打包插件

Dubbo做一个服务提供者,以Dubbo方法自提供的Main方法启动,供消费者调用,希望做到类似SpringBootJar包启动。最后采用Maven打包插件把服务提供者打包成Jar放入服务器启动。

思路

Jar包执行访问Jar包中META-INF/MANIFEST.MF文件,文件包含Jdk编译版本,Jar依赖,Jar版本,启动Main方法等。
所以两个插件,

  • Maven编译后把Jar放入固定文件夹下(target\lib)
  • Maven插件打包设置Main方法
  1. 生成依赖Jar包到固定文件夹下

         <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>
                         <outputDirectory>${project.build.directory}/lib</outputDirectory>
                     </configuration>
                 </execution>
             </executions>
         </plugin>
    
  2. 设置生成Jar启动类

         <plugin>
             <groupId>org.apache.maven.plugins</groupId>
             <artifactId>maven-jar-plugin</artifactId>
             <version>2.4</version>
             <configuration>
                 <classesDirectory>target/classes/</classesDirectory>
                 <archive>
                     <manifest>
                         <mainClass>com.alibaba.dubbo.container.Main</mainClass>
                         <useUniqueVersions>false</useUniqueVersions>
                         <addClasspath>true</addClasspath>
                         <classpathPrefix>lib/</classpathPrefix>
                     </manifest>
                     <manifestEntries>
                         <Class-Path>.</Class-Path>
                     </manifestEntries>
                 </archive>
             </configuration>
         </plugin>
    

两个插件实现了部署Jar项目只需要执行Jar就好了,而且这种方式不像SpringBoot把所有依赖全部放入Jar包中生成的Jar较大,代码修改上传耗时。如果程序需不需要修改依赖Jar,我们只需要上传我们自己写的Jar就好了就几M。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,268评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,999评论 6 342
  • 1、感谢老公对林老师课程的认可,以后多了一个更好的沟通的话题。 2、感谢董宁王楠带孩子们一起来过端午节。 3、感谢...
    文娜_阅读 134评论 0 2
  • 今天本来听说停电到十点半,以为可以早早地接女儿去逛大润发超市,看看有没有合适的要买的,谁知天不遂人愿,不停电了,哎...
    家有千金_aa21阅读 74评论 0 0
  • 渴望快乐的人们, 似乎并没有让他人快乐; 拒绝痛苦的人们, 似乎也没少给他人痛苦。 我们理应知道, 很多事情都要依...
    妙音园阅读 201评论 0 0