springboot maven打包插件spring-boot-maven-plugin
springboot自带的maven插件,可用于简单的JAR/WAR方式打包,官方地址为https://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-maven-plugin.html
简单的应用如下:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--当使用springboot构建服务,则该配置可省略--> <version>2.1.4.RELEASE</version> </plugin>
当执行mvn clean package命令的时候,其会默认执行该插件的repackage任务。其会在target目录下生成以下两个文件:
> ls target/*.jar > target/demo-springboot-web-0.0.1-SNAPSHOT.jar target/demo-springboot-web-0.0.1-SNAPSHOT.jar.original
其中demo-springboot-web-0.0.1-SNAPSHOT.jar.original文件,用户可将.original后缀去掉便可得到用户自己编写的项目包。
而demo-springboot-web-0.0.1-SNAPSHOT.jar文件往往比上面那个文件要大的多,其实其内部已经将用户编写的项目所相关的依赖都打进去了,百闻不如一见。
由图中可知,相应的依赖均被打入至\BOOT-INF\lib目录,而相应的源码则被编译放置到\BOOT-INF\classes目录。
上述打出的JAR包,由\META-INF\MANIFEST.MF文件的属性Main-Class可知具体的启动由springboot官方编写的org.springframework.boot.loader.JarLauncher类来启动,且其会去加载Start-Class属性指定的类来作为真正的启动类。而用户层的调用则可执行命令java -jar demo-springboot-web-0.0.1-SNAPSHOT.jar
便可
而用户如果想个别指定相应的main-class便可使用以下配置:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--当使用springboot构建服务,则该配置可省略--> <version>2.1.4.RELEASE</version> <configuration> <archive> <manifest> <mainClass>com.example.demo.DemoSpringApplication</mainClass> </manifest> </archive> </configuration> </plugin>
关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台
除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接
本文链接:https://choupangxia.com/2019/11/15/spring-boot-maven-plugin/