技术标签: springboot
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
spring boot加上这个插件,才可以使用Java -jar命令来启动jar包,并且有了这个插件,
打的包里面才会有maven依赖的jar包和spring boot的启动类,所以打的jar包也就比较大,
而且MANIFEST.MF文件里面也会有启动类的信息。但是如果不加这个插件,则打的包里面就只有class文件,
没有依赖的Jar包,MANIFEST.MF文件里面也没有启动类的信息,所以如果不加这个插件就不能独立启动。
注意:在用idea调试的时候加不加插件都可以启动,看不出来不同,所以必须要独立启动jar包才可以看出来。
而且如果用了spring boot但是不需要独立启动,就不要加这个插件,否则spring boot会因为找不到启动类而导致报错
Spring Boot的Maven插件(Spring Boot Maven plugin)能够以Maven的方式为应用提供Spring Boot的支持,即为Spring Boot应用提供了执行Maven操作的可能。
Spring Boot Maven plugin能够将Spring Boot应用打包为可执行的jar或war文件,然后以通常的方式运行Spring Boot应用。
Spring Boot Maven plugin的最新版本为2017.6.8发布的1.5.4.RELEASE,要求Java 8, Maven 3.2及以后。
1. Spring Boot Maven plugin的5个Goals
2. 配置pom.xml文件
3.mvn package spring-boot:repackage说明
Spring Boot Maven plugin的最主要goal就是repackage,其在Maven的package生命周期阶段,能够将mvn package生成的软件包,再次打包为可执行的软件包,并将mvn package生成的软件包重命名为*.original。
基于上述配置,对一个生成Jar软件包的项目执行如下命令。
在执行上述命令的过程中,Maven首先在package阶段打包生成*.jar文件;然后执行spring-boot:repackage重新打包,查找Manifest文件中配置的Main-Class属性,如下所示:
注意,其中的Main-Class属性值为org.springframework.boot.loader.JarLauncher;
Start-Class属性值为com.ericsson.ramltest.MyApplication。
其中com.ericsson.ramltest.MyApplication类中定义了main()方法,是程序的入口。
通常,Spring Boot Maven plugin会在打包过程中自动为Manifest文件设置Main-Class属性,事实上该属性究竟作用几何,还可以受Spring Boot Maven plugin的配置属性layout控制的,示例如下。
layout属性的值可以如下:
4.integration-test阶段中的Spring Boot Maven plugin的start/stop
maven-failsafe-plugin用作integration-test的主要执行目标。
spring-boot-maven-plugin用以为integration-test提供支持。
执行integration-test的Maven命令如下:
mvn verify
或者
mvn verify -Dit.skip=false
参考链接:
http://docs.spring.io/spring-boot/docs/1.5.4.RELEASE/maven-plugin/
https://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-maven-plugin.html
package my;import java.util.Scanner;public class hello { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); System.out.println("请输入您的成绩:"); int score = s...
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguageCMake Error: Internal CMake error, TryCompile configure of cmake failed-- Check size of unsigned int - failed-- Check size of unsigned longCMake Error at /usr/share/cmake/Modules/CMakeCInformat
AOV网:顶点活动(Activity On Vertex,AOV)网是指用顶点表示活动,而用边集表示活动间优先关系的有向图。例如图10-57的先导课程示意图就是AOV网,其中图的顶点表示各项课程,也就是“活动”;有向边表示课程的先导关系,也就是“活动间的优先关系”。显然,图中不应当存在有向环,否则会让优先关系出现逻辑错误。AOE网:边活动(Activity On Edge,A...
点亮LED灯实验原理由LED电路图,PCX端口输入低电平,则灯亮;输入高电平,则灯灭。准备APP文件:外设(如LED)驱动文件夹。这里是LED的驱动程序(led.c)和头文件(led.h)。添加led文件路径。需对GPIO外设操作,需要添加驱动程序(stm32f103zet6_gpio.c)和头文件(stm32f103zet6_gpio.h)添加系统是时钟驱动程序(stm32f103...
车载mmRadar技术发展非常成熟,产业竞争格局比较稳定,潜在进入者壁垒较高,特别是专利技术壁垒。在应用方面,24GHz和77GHz依据各自性能特点,较为固定的在角雷达、侧面雷达和长距雷达上进行安装使用。市场未来的主要变化,来自于三方面:1、整个智能驾驶等级提升及汽车数量的增长带动的mmRadar使用量的增长;2、异构传感器融合方案的不确定;3、中国供应商是否能异军突起?日前,全球知名前沿科技咨询机构ICV发布的题为《Global automotive mmRadar market forecast
在前一篇博文中,我们使用OAuth的Client Credential Grant授权方式,在服务端通过CNBlogsAuthorizationServerProvider(Authorization Server的一个实现)成功发放了Access Token,并在客户端成功拿到了Access Token。那Access Token有什么用呢?在OAuth中对Resource Server(比...
为了防止磁盘上的东西被误删或者被随意改写,磁盘上往往设有写保护功能,打开写保护后就无法往磁盘上写任何数据,同样也无法删除数据。这种情况往往发生在U盘和移动硬盘等设备上。 U盘被写保护 先看下U盘是否有保护开关,如果有,那你就只需要拨动开关。如果没有,那你就得准备点家伙了:把你的U盘拆开,找到铜片,其中应该有个铜片是陷下去的,只要将它拨起来,和上面的铜片全部接触就行了。如果不是...
C++字符串完全指引之二——字符串封装类原著:MichaelDunn作者:ChengjieSun原文出处:CodeProject:TheCompleteGuidetoC++Strings,PartII引言 因为C语言风格的字符串容易出错且不易管理,黑客们甚至利用可能存在的缓冲区溢出bug把C语言风格的字符串作为攻击目标,所以出现了很多字符串封装类。不幸的是,在某...
七个事务传播属性1. Propagation.REQUIRED:支持当前事务,如果当前没有事务,则新建一个事务,默认使用这种,也是最常见的.2. Propagation.SUPPORTS:支持当前事务,如果没有事务,就以非事务的方式执行.3. Propagation.MANDATORY:支持当前事务,如果没有事务,就抛出异常.4. Propagation.REQUIRES_NEW:新建事务...
前言有的时候因为各种原因,在操作系统下,我们会安装很多版本的Python解释器。同样,我们也有可能因为各种原因,需要不同版本的模块,比如Django1.8,Django1.11。再加上pip工具管理器的版本混乱问题。这就使得很多人在Python的环境管理上产生极大的混乱。通常每个项目,甚至项目不同阶段的版本,需要不同的Python解释器和依赖库。为了清晰明了,安全可靠的管理这些环境,需要为每个项目...
插槽我的理解就是父页面在组件标签内插入任意内容,子组件内插糟slot控制摆放位置(匿名插槽,具名插槽)插槽分类插槽一共就三大类1.匿名插槽(也叫默认插槽): 没有命名,有且只有一个2.具名插槽: 相对匿名插槽组件slot标签带name命名的3.作用域插槽: 子组件内数据可以被父页面拿到(解决了数据只能从父页面传递给子组件)匿名插槽(也叫默认插槽default)用法:我的理解,匿...
今天在虚拟机(centos8)编译CRIU时遇到此问题。出现这个问题基本上由于python安装了过多的版本,导致链接失效首先可以使用下面命令查看相关的python的具体位置$ which python/usr/bin/which : no python in (/usr/lib64/bin:/usr/lib64/sbin:/usr/lib/bin)说明确实没有python,然后可以按具...