Maven打包插件

2018-10-12  本文已影响0人  锏戍

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

思路

Jar包执行访问Jar包中META-INF/MANIFEST.MF文件,文件包含Jdk编译版本,Jar依赖,Jar版本,启动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。

上一篇下一篇

猜你喜欢

热点阅读