[笔记]spring boot打包jar和war
2017-06-16 15:01
549 查看
打包jar
Spring官网Guides下任意一个例子,比如最简单的Building a RESTful Web Service
打包war
参考Spring Boot文档 Traditional deployment 85.1 Create a deployable war file
或例程 spring-boot-sample-war
按例程看,如果
打包一个又能发布于tomcat又能
2的参考文档里有:
If you’re using the Spring Boot build tools, marking the embedded servlet container dependency as provided will produce an executable war file with the provided dependencies packaged in a lib-provided directory.
另外:
Maven 66.2 Packaging executable jar and war files
Gradle 67.3 Packaging executable jar and war files
观察几种配置的发布包子目录和其下jar包,并比较MENIFEST.MF:
bootRun时有:
不过关心的是war包:
应该是丢给tomcat时、tomcat只检查servlet定义的WEB-INF/lib路径,但
所以两种都能跑。
Spring官网Guides下任意一个例子,比如最简单的Building a RESTful Web Service
打包war
参考Spring Boot文档 Traditional deployment 85.1 Create a deployable war file
或例程 spring-boot-sample-war
按例程看,如果
@SpringBootApplication的class直接继承了
SpringBootServletInitializer,不用重写
config方法也是可以的(
builder.main(getClass())、get的就是应用class)。
打包一个又能发布于tomcat又能
java -jar直接跑的war
2的参考文档里有:
If you’re using the Spring Boot build tools, marking the embedded servlet container dependency as provided will produce an executable war file with the provided dependencies packaged in a lib-provided directory.
另外:
Maven 66.2 Packaging executable jar and war files
Gradle 67.3 Packaging executable jar and war files
观察几种配置的发布包子目录和其下jar包,并比较MENIFEST.MF:
bootRun时有:
Start-Class: hello.Application Spring-Boot-Classes: BOOT-INF/classes/ Spring-Boot-Lib: BOOT-INF/lib/ Main-Class: org.springframework.boot.loader.JarLauncher
不过关心的是war包:
Start-Class: hello.Application Spring-Boot-Classes: WEB-INF/classes/ Spring-Boot-Lib: WEB-INF/lib/ Main-Class: org.springframework.boot.loader.WarLauncher
应该是丢给tomcat时、tomcat只检查servlet定义的WEB-INF/lib路径,但
java -jar时、Spring的WarLauncher还引入了存放着tomcat相关jar的
lib-provided目录:
@Override public boolean isNestedArchive(Archive.Entry entry) { if (entry.isDirectory()) { return entry.getName().equals(WEB_INF_CLASSES); } else { return entry.getName().startsWith(WEB_INF_LIB) || entry.getName().startsWith(WEB_INF_LIB_PROVIDED); } }
所以两种都能跑。
相关文章推荐
- Spring Boot打包jar或war
- Spring boot打包war、jar部署tomcat
- 关于war包 jar包 ear包 及打包方法
- 对上一篇笔记提到的JAR打包问题的解决方法
- Linux下打包压缩war、解压war包和jar命令
- 关于maven打包时出现jar包版本的多重引用导致最终war包里的版本不是最新的
- myeclipse中打包jar与war文件
- 将java文件打包成jar和war
- Maven使用本地jar包并打包进war包里面的方法
- eclipse中maven web工程打包成war(发布到tomcar)时lib中没有jar包的解决办法
- MyEclipse工具打包jar,war
- Maven打包:将classes打成Jar,之后打到War中(或打成jar),过滤指定目录。
- Maven 打包 jar 、war 文件时,不将 pom.xml 等打包进包中
- java的打包jar,war,ear包的作用,区别
- java的打包jar,war,ear包的作用,区别,打包方式(本文打jar)
- 主题:war、jar包的打包方法,命令行方式和使用jbuilder或者eclipse
- 关于war包 jar包 ear包 及打包方法-->必看哦
- war、jar包的打包方法,命令行方式和使用jbuilder或者eclipse
- 将java project打包成jar包,web project 打包成war包的几种演示
- Linux上打包压缩war、解压war包和jar命令