美文网首页
Maven打包插件

Maven打包插件

作者: 锏戍 | 来源:发表于2018-10-12 16:46 被阅读0次

    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。

    相关文章

      网友评论

          本文标题:Maven打包插件

          本文链接:https://www.haomeiwen.com/subject/xiygaftx.html