SpringBoot Maven 打包(可运行)

示例工程:SpringBoot + Maven

1.使用SpringBoot自带插件

pom.xml文件中添加如下代码:

(代码不设置行号,方便后续拷贝。)

1<build> 2 <plugins> 3 <plugin> 4 <groupId>org.springframework.boot</groupId> 5 <artifactId>spring-boot-maven-plugin</artifactId> 6 <configuration> 7 <!-- 工程主入口--> 8 <mainClass>com.gannalyo.plugin.MySampleMavenPackagePluginApplication</mainClass> 9 </configuration> 10 <executions> 11 <execution> 12 <goals> 13 <goal>repackage</goal> 14 </goals> 15 </execution> 16 </executions> 17 </plugin> 18 </plugins> 19</build>

运行【mvn clean install】命令即可。

效果:

2.使用assembly插件

 pom.xml文件中添加如下代码:

1<build> 2 <plugins> 3 <!-- 使用assembly插件打可运行jar和tar.gz包 --> 4 <plugin> 5 <groupId>org.apache.maven.plugins</groupId> 6 <artifactId>maven-jar-plugin</artifactId> 7 <configuration> 8 <archive> 9 <manifest> 10 <!-- 工程主入口 --> 11 <mainClass>com.gannalyo.plugin.MySampleMavenPackagePluginApplication</mainClass> 12 <addClasspath>true</addClasspath> 13 <!-- 此处如果设置,会在Manifest.MF文件中的引入jar包前加上此前缀,此处我注释掉了,否则可运行jar要放在lib同级目录而不是lib里面 --> 14 <!-- <classpathPrefix>lib/</classpathPrefix> --> 15 </manifest> 16 <manifestEntries> 17 <Class-Path>./</Class-Path> 18 </manifestEntries> 19 </archive> 20 </configuration> 21 </plugin> 22 <plugin> 23 <artifactId>maven-assembly-plugin</artifactId> 24 <configuration> 25 <!-- 不添加assembly的id到打包后的文件名称中 --> 26 <appendAssemblyId>false</appendAssemblyId> 27 <descriptors> 28 <!-- assembly.xml主要包含内容:打包后的文件格式、都包含哪些文件、不同文件的目录(如bin、lib、conf、README.md)、权限等 --> 29 <descriptor>src/main/assembly/assembly.xml</descriptor> 30 </descriptors> 31 </configuration> 32 <executions> 33 <execution> 34 <id>make-assembly</id> 35 <phase>package</phase> 36 <goals> 37 <goal>single</goal> 38 </goals> 39 </execution> 40 </executions> 41 </plugin> 42 </plugins> 43</build>

文件《assembly.xml》:

1<?xml version="1.0" encoding="UTF-8"?> 2<assembly 3 xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/2.0.0" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd"> 6 <!-- id可随意写,当然最好有意义 -->   <id>package</id> 7 <formats> 8 <!-- 压缩文件类型:zip、tar、tar.gz/tgz、tar.bz2/tbz2、jar、dir、war --> 9 <format>tar.gz</format> 10 </formats> 11 <includeBaseDirectory>true</includeBaseDirectory> 12 <fileSets> 13 <!-- 需要包含的文件与输出的路径 --> 14 <fileSet> 15 <directory>src/main/resources</directory> 16 <outputDirectory>/conf</outputDirectory> 17 </fileSet> 18 </fileSets> 19 <files> 20 <!-- 打包时把start.bat和start.sh文件放在bin目录 --> 21 <file> 22 <source>start.bat</source> 23 <outputDirectory>/bin</outputDirectory> 24 </file> 25 <file> 26 <source>start.sh</source> 27 <outputDirectory>/bin</outputDirectory> 28 <!-- 赋予可执行权限 --> 29 <fileMode>755</fileMode> 30 </file> 31 <!-- 打包时把README.md文件放在根目录 --> 32 <file> 33 <source>README.md</source> 34 </file> 35 </files> 36 <dependencySets> 37 <dependencySet> 38 <!-- 存放依赖位置,即压缩包下的根目录下的lib文件夹中 --> 39 <outputDirectory>/lib</outputDirectory> 40 <scope>runtime</scope> 41 </dependencySet> 42 </dependencySets> 43</assembly>

运行【mvn clean install】命令即可。

效果:

Linux下解压tar.gz后运行bin/start.sh文件,成功启动工程:

官网:http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

SpringBoot打包部署简单说明

SpringBoot项目打包部署1\.jar包部署添加一个插件<!打包插件<build<plugins<plugin<groupId

SpringBoot Maven 打包(可运行) - HelloWorld