补习系列-springboot项目基础搭建课 (3)

plugin可以实现在maven的某个生命周期绑定一组动作,如上面的两个插件都绑定到了package阶段,执行顺序由声明的先后决定。
于是项目在执行mvn package这样的命令时,会先执行springboot插件的repackage动作,将程序打包成jar文件;随后通过assembly插件执行bundle任务,
再作最终的组装。
/src/main/build/assembly.xml定义了程序包的结构,如下:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 "> <id>bundle</id> <formats> <format>tar.gz</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <!-- disable the creation of root's distribution dir in the archive --> <fileSets> <!-- config files --> <fileSet> <directory>${basedir}/src/main/build/config</directory> <excludes></excludes> <includes> <include>application*.properties</include> <include>log4j2.xml</include> </includes> <fileMode>0644</fileMode> <outputDirectory>/</outputDirectory> </fileSet> <!-- scripts --> <fileSet> <directory>${basedir}/src/main/build/bin</directory> <includes> <include>*.sh</include> </includes> <fileMode>0755</fileMode> <outputDirectory>/</outputDirectory> </fileSet> <!-- executable jar --> <fileSet> <directory>${project.build.directory}</directory> <outputDirectory>/</outputDirectory> <includes> <include>${project.artifactId}-${project.version}.jar</include> </includes> <fileMode>0755</fileMode> </fileSet> </fileSets> </assembly>

assembly文件的定义比较简单,目标程序包中除了jar文件之外,还会包含几个脚本和配置文件。

启动脚本
/src/main/build/bin/start.sh

nohup java -jar dmo-boot-0.0.1-SNAPSHOT.jar > console.log & tail -n100 -f console.log

停止脚本
/src/main/build/bin/stop.sh

kill `cat application.pid` rm application.pid

配置文件
/src/main/build/application.properties
/src/main/build/log4j2.xml

最终执行"mvn package"打包,会输出压缩包文件,结构如下:

dmo-boot.0.0.1-SNAPSHOT.jar application.properties log4j2.xml start.sh stop.sh 小结

本文将一个springboot项目从初始化、开发、配置、打包的整个流程进行了详细介绍,希望读者对该框架能产生整体性的了解。
由于篇幅有限,部分章节仅做了简单说明。springboot是一个优秀的脚手架,借助于框架可以快速的完成各种特性的实现。
在随后的文章里,将会跟大家一起继续深入学习,欢迎随时关注"美码师的补习系列-springboot篇"

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyyzxs.html