Spring Boot 打war包并利用docBase指定根目录为打包的工程
2018-05-11 00:05
706 查看
原文链接:http://www.cnblogs.com/huanghongbo/p/9022507.html
为了访问方便,我修改了tomcat安装目录下的conf文件下的server.xml文件: 在该文件最后的Host节点添加如下:
参考:Spring Boot 打war包
指定根目录有两种方式
1:直接将打的war包名称定义为ROOT
2:利用docBase
比如笔者war包名为xibu.war,将该war包丢到
/Users/archerlj/Library/apache-tomcat-8.5.8/webapps目录下即可。
为了访问方便,我修改了tomcat安装目录下的conf文件下的server.xml文件: 在该文件最后的Host节点添加如下:
<!-- path留空代表访问域名后面不需要带项目的名称 --> <Context path="" docBase="xibu" reloadable="false" />path是虚拟目录。 docBase是真实目录,可以是相对路径或者绝对路径,这里因为xibu.war放在webapp下面,所以直接用了相对路径。
参考:Spring Boot 打war包
- 将SpringBoot的项目的打包方式设置为war
<groupId>com.example</groupId> <artifactId>demo</artifactId> <version>1.0.0</version> <packaging>war</packaging>
- 移除内嵌的tomcat模块,但是为了我们在本机测试方便,我们还需要引入它,所以配置如下
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
- 添加tomcat-servelt-api依赖
<dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-servlet-api</artifactId> <!--此处跟随服务器tomcat版本--> <version>7.0.42</version> <scope>provided</scope> </dependency>
- 修改入口方法 继承一个SpringBootServletInitializer类,并且覆盖configure方法
package com.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.support.SpringBootServletInitializer; import org.springframework.cache.annotation.EnableCaching; @SpringBootApplication @EnableCaching public class SpringDataJpaExampleApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(SpringDataJpaExampleApplication.class); } public static void main(String[] args) { SpringApplication.run(SpringDataJpaExampleApplication.class, args); } }
- 添加war插件,用来自定义打包以后的war包的名称
<build> <finalName>springboot</finalName> <!-- 打包项目 mvn clean package --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <warSourceExcludes>src/main/resources/**</warSourceExcludes> <warName>springboot</warName> </configuration> </plugin> </build>
引入上面这个插件,是避免maven打包的时候为我们默认的一个带有版本号的war包名称,因为我们部署到tomcat以后,在访问项目的时候,需要用到这个war包的名称
6.部署至tomcat服务器
大部分情况下,在进行工程开发的时候,没有配置server.servlet.context-path
此时有两种办法:1.直接打包为ROOT.war
2.更改docBase
关于Tomcat虚拟主机(appBase,docBase)的配置问题
比如笔者war包名为xibu.war,将该war包丢到
/Users/archerlj/Library/apache-tomcat-8.5.8/webapps
目录下即可。
为了访问方便,我修改了tomcat安装目录下的conf文件下的server.xml文件:在该文件最后的Host节点添加如下: <!-- path留空代表访问域名后面不需要带项目的名称 --> <Context path="" docBase="xibu" reloadable="false" /> path是虚拟目录。 docBase是真实目录,可以是相对路径或者绝对路径,这里因为xibu.war放在webapp下面,所以直接用了相对路径。
这样,启动tomcat之后就可以直接通过访问
http://localhost:8080
来访问你的项目了。好了,cd到tomcat的bin目录下
sudo sh startup.sh
启动tomcat就可以了,这时候访问http://localhost:8080
就能访问部署的项目了(笔者修改了端口:8081)
转载于:https://www.cnblogs.com/huanghongbo/p/9022507.html
相关文章推荐
- 利用Ant与Proguard混淆引用的子工程项目jar包及打war包
- Spring Boot打包jar或war
- Maven 打包,Resource下有jar包,整个工程打包成war包,解压缩war包发现原先Resource下jar包打不开解决办法
- 解决eclipse中maven web工程打包成war(发布到tomcar)时lib中没有jar包的解决方法
- 利用jenkens和ant来自动化打包、部署、执行你的helloWorld工程只(菜鸟成长之路一)
- 命令行打包java工程为war包
- 71.将一个工程或其下的flex文件打包(为war)。
- ASP利用XML打包指定文件夹 并上传到WEB目录中,自行解包
- idea 将工程项目打包成war
- [笔记]spring boot打包jar和war
- 利用IDEA将SpringBoot的项目打包成war文件
- maven 配置及打包依赖,打包war到指定目录
- 利用MAVEN打包spark工程,运行时报错No FileSystem for scheme: file的问题
- Spring boot打包war、jar部署tomcat
- 利用shell自动化打包java工程
- 利用Maven将Groovy工程打包成jar包
- eclipse中maven web工程打包成war缺少lib目录
- 【工程管理】使用Ant构建struts2 web工程,自动编译,打包成war
- Maven打包web工程成WAR
- eclipse中maven web工程打包成war缺少lib目录