标签:src 执行文件 使用外部 compiler 引用 gap 出现 config vax
<!--改为war方式 --> <packaging>war</packaging>
<!-- 在项目打包时,剔除springboot内置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>
作用:编写servlet时用我们自己引用的包,而运行时用tomcat自己的包,这样就不用冲突了,又能正常开发代码
下面两种方式都可以,任选其一 第一种: <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> 第二种: <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-servlet-api</artifactId> <version>8.0.36</version> <scope>provided</scope> </dependency>
<build> <!-- 自定义打包名称 这里的名称必须与application.properties中server.context-path的值一致 否则即使Tomcat启动项目成功,在访问时也会导致404错误 --> <finalName>demo</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${jdk.version}</source><!-- 指定jdk版本 --> <target>${jdk.version}</target> <encoding>${project.build.sourceEncoding}</encoding><!-- 指定编码版本 --> </configuration> </plugin> <!--该插件的主要功能是进行项目的打包发布处理 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.5.4.RELEASE</version> <configuration> <!--设置程序执行的主类,指定程序入口 --> <mainClass>com.web.boot.ApplicationStart</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal><!-- repackage将jar / war 重新打包为可执行文件 --> </goals> </execution> </executions> </plugin> </plugins> </build>
1.5.1 我们平常用main方法启动的方式,都有一个App的启动类,代码如下:
@SpringBootApplication public class ApplicationStart{ public static void main(String[] args) { SpringApplication.run(ApplicationStart.class, args); } }
1.5.2 使用外置的tomcat启动,我们需要类似于web.xml的配置方式来启动spring上下文了,在Application类的同级添加一个SpringBootStartApplication类,其代码如下:
/** * 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法 */ @SpringBootApplication public class ApplicationStart extends SpringBootServletInitializer{ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // 注意这里要指向原先用main方法执行的Application启动类 return builder.sources(ApplicationStart.class); } public static void main(String[] args) { SpringApplication.run(ApplicationStart.class, args); } }
spring boot就是为了简化开发的,也就是用注解的方式取代了传统的xml配置。
SpringBootServletInitializer就是原有的web.xml文件的替代。
clean package -D maven.test.skip=true
等待打包完成,出现[INFO] BUILD SUCCESS即为打包成功。
即可自动解压部署。
3.2 ${Tomcat_home}/bin/目录下执行startup.sh(linux)
使用外部Tomcat部署访问的时候,application.properties(或者application.yml)中配置的端口
将失效,请使用${Tomcat_home}/conf/server.xml中的端口进行访问。
建议pom.xml文件中<build></build>标签下添加<finalName></finalName>标签,且需和application.properties(或者application.yml)中server.context-path的值一致
标签:src 执行文件 使用外部 compiler 引用 gap 出现 config vax
原文地址:https://www.cnblogs.com/KdeS/p/12096700.html