/ecode-springboot-maven-plugin

扩展spring-boot-maven-plugin打包插件的repackage功能,实现将依赖jar从可执行包中分离出来

Primary LanguageJava

spring boot应用maven打包插件,扩展自spring-boot-maven-plugin插件,扩展功能为:
1.对spring-boot-maven-plugin插件打包生成的可执行jar瘦身:将原可执行jar(fat jar)里的BOOT-INF\lib里的依赖jar分离出来,放到同目录lib路径下;
2.增加配置参数,指定打包路径;

用法:
将本插件安装到您的maven仓库(可以直接将ecode-springboot-maven-plugin/dist/下面的内容复制到您的maven仓库),然后修改您的springboot项目的pom.xml,将原spring-boot-maven-plugin插件替换为本插件,然后执行 【mvn clean -Dmaven.test.skip=true package】
原spring-boot-maven-plugin插件:

        <plugin>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-maven-plugin</artifactId>
           <configuration>
              <executable>true</executable> 
              <mainClass>${project.mainClass}</mainClass> 
           </configuration>
           <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin> 

本插件:

        <plugin>
           <groupId>com.jsecode.springboot</groupId>
           <artifactId>ecode-springboot-maven-plugin</artifactId>
           <version>1.0</version>
           <configuration>
              <executable>true</executable> 
              <allInOne>false</allInOne>
              <mainClass>${project.mainClass}</mainClass> 
              <distDir>${project.distDir}</distDir>
           </configuration>
           <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin> 

区别:(1)groupId及artifactId
(2)configuration里增加了allInOne及distDir两个参数:
allInOne:true|false,true-打包效果跟原插件(spring-boot-maven-plugin)一样;false-将可执行包的BOOT-INF\lib里的依赖jar从可执行分离出来,放到可执行包同路径lib目录下面;
distDir:配置存放可执行包的路径,如果不配置,默认项目target路径下面;

部署:将可执行包与lib依赖库及脚本(java -jar your-project-exe-jar.jar)放在同一路径,部署目录示例:

      ----config/
      ----your-springboot-project-exe-jar.jar  
      ----lib/  
            |-------spring-boot-1.5.10.RELEASE.jar  
            |-------spring-boot-starter-web-1.5.10.RELEASE.jar    
            |-------xxxxx.jar
      ----startup.bat/startup.sh  
      ----shutdown.bat/shutdown.sh
      ----logs/