项目作者: knightliao

项目描述 :
shade maven plugin for java projects / Java项目的打包插件
高级语言: Java
项目地址: git://github.com/knightliao/starter-shade-maven-plugin.git
创建时间: 2016-06-03T03:57:29Z
项目社区:https://github.com/knightliao/starter-shade-maven-plugin

开源协议:

下载


starter-shade-maven-plugin

shade maven plugin for java projects / Java项目的打包插件

特点

  • 简单、方便
  • 只生成一个jar包
  • 自动生成start.sh, stop.sh
  • 自动生成部署环境,并自动将部署环境打成tar.gz包

demo

demos/starter-shade-demo

使用方式

  1. <build>
  2. <finalName>starter-shade-demo</finalName>
  3. <resources>
  4. <resource>
  5. <directory>src/main/resources</directory>
  6. </resource>
  7. </resources>
  8. <plugins>
  9. <plugin>
  10. <groupId>com.github.knightliao.plugin</groupId>
  11. <artifactId>starter-shade-maven-plugin</artifactId>
  12. <version>1.0.1</version>
  13. <executions>
  14. <execution>
  15. <phase>package</phase>
  16. <goals>
  17. <goal>shade</goal>
  18. </goals>
  19. <configuration>
  20. <finalName>${project.build.finalName}</finalName>
  21. <transformers>
  22. <transformer
  23. implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
  24. <mainClass>com.example.starter.DemoMain</mainClass>
  25. </transformer>
  26. <transformer
  27. implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer">
  28. <resources>
  29. </resources>
  30. </transformer>
  31. <transformer
  32. implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  33. <resource>META-INF/spring.handlers</resource>
  34. </transformer>
  35. <transformer
  36. implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  37. <resource>META-INF/spring.schemas</resource>
  38. </transformer>
  39. </transformers>
  40. </configuration>
  41. </execution>
  42. </executions>
  43. </plugin>
  44. </plugins>
  45. </build>

效果

打包

mvn clean package

结果

target目录

  1. target git:(master) ll
  2. total 52824
  3. drwxr-xr-x 7 knightliao staff 238 6 3 17:23 classes
  4. drwxr-xr-x 3 knightliao staff 102 6 3 17:23 maven-archiver
  5. -rw-r--r-- 1 knightliao staff 5219 6 3 17:23 original-starter-shade-demo.jar
  6. drwxr-xr-x 8 knightliao staff 272 6 3 17:23 starter-run
  7. -rw-r--r-- 1 knightliao staff 14106191 6 3 17:23 starter-shade-demo.jar
  8. -rw-r--r-- 1 knightliao staff 12927960 6 3 17:23 starter-shade-demo.tar.gz

其中

  • starter-run 是可部署的环境,包含所有可执行脚本以及jar包的文件目录
  • starter-shade-demo.tar.gz 是对 starter-run 目录的打包

starter-run目录

  1. target git:(master) cd starter-run
  2. starter-run git:(master) ls -l
  3. total 27592
  4. -rw-r--r-- 1 knightliao staff 9 6 3 17:23 demo.properties
  5. -rw-r--r-- 1 knightliao staff 412 6 3 17:23 env
  6. -rw-r--r-- 1 knightliao staff 1353 6 3 17:23 logback.xml
  7. -rw-r--r-- 1 knightliao staff 1037 6 3 17:23 start.sh
  8. -rw-r--r-- 1 knightliao staff 14106191 6 3 17:23 starter-shade-demo.jar
  9. -rw-r--r-- 1 knightliao staff 532 6 3 17:23 stop.sh

其中

  • start.sh 是开始脚本, 插件自动生成的
  • stop.sh 是关闭脚本, 插件自动生成的
  • env 是启动前的环境变量设置

env文件

  1. starter-run git:(master) cat env
  2. BUNDLE_JAR_NAME=starter-shade-demo.jar
  3. export JAVA_OPTS="$JAVA_OPTS -server -Xms1024m -Xmx1024m -Xmn448m -Xss256K -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=64m"
  4. export JAVA_OPTS="$JAVA_OPTS -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:ParallelGCThreads=2"
  5. export JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -XX:+PrintGCTimeStamps"
  6. export JAVA_OPTS="$JAVA_OPTS -Dlogback.configurationFile=file:logback.xml"

其中

  • 必须设置 BUNDLE_JAR_NAME ,否则 start.sh 无法启动
  • 其它参数可配

执行、查看日志和关闭

  1. starter-run git:(master) sh start.sh
  2. nohup java -server -Xms1024m -Xmx1024m -Xmn448m -Xss256K -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=64m -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:ParallelGCThreads=2 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Dlogback.configurationFile=file:logback.xml -jar starter-shade-demo.jar >> log_1464945913.log 2>&1 &
  3. starter-run git:(master) tail -f log_1464945913.log
  4. 信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@7c518f42: startup date [Fri Jun 03 17:25:13 CST 2016]; root of context hierarchy
  5. 六月 03, 2016 5:25:13 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
  6. 信息: Loading XML bean definitions from class path resource [applicationContext.xml]
  7. 2016-06-03 17:25:14,079 [main] INFO com.example.starter.DemoMain - {key=value}
  8. 2016-06-03 17:25:14,082 [main] INFO com.example.starter.DemoMain - 0
  9. 2016-06-03 17:25:14,583 [main] INFO com.example.starter.DemoMain - 1
  10. 2016-06-03 17:25:15,089 [main] INFO com.example.starter.DemoMain - 2
  11. 2016-06-03 17:25:15,593 [main] INFO com.example.starter.DemoMain - 3
  12. 2016-06-03 17:25:16,097 [main] INFO com.example.starter.DemoMain - 4
  13. 2016-06-03 17:25:16,602 [main] INFO com.example.starter.DemoMain - 5
  14. 2016-06-03 17:25:17,108 [main] INFO com.example.starter.DemoMain - 6
  15. ^C
  16. starter-run git:(master) sh stop.sh
  17. Find process and pid=[79300]
  18. Kill pid=[79300] done