详解springboot项目带Tomcat和不带Tomcat的两种打包方式
1,带Tomcat的打包方式
1.1, 在pom.xml文件添加以下配置(目的:自定main入口和跳过Junit代码)
<build> <plugins> <!--打包为jar时指定main入口--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--这里写上main方法所在类的路径--> <configuration> <mainClass>com.sh.tool.YnToolApplication</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <!--忽略Junit代码--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.4.2</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins> </build>
1.2,在命令行窗口输入命令 :
mvn clean package
1.3,结果会在项目的target路径下生成一个.jar文件,将.jar文件复制到任意路径,打开命令窗口进入.jar所在路径,执行以下命令
java -jar <.jar文件名>
执行成功之后就可以访问controller接口了。
2,去除Tomcat的打包方式
2.1,配置pom.xml文件,加上如下配置
<packaging>war</packaging><!--将packaging指定为war--> <!--移除内嵌的Tomcat--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <build> <plugins> <!--忽略Junit代码--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.4.2</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins> </build>
PS:网上有些说要加以下配置,但是我测试不加也是可以的
<build> <plugins> <!-- maven打包的时候告诉maven不需要web.xml,否刚会报找不到web.xml错误 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> <!--指定jdk版本--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build>
2.2,修改启动类为如下
@SpringBootApplication public class YnToolApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(YnToolApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(YnToolApplication.class); } }
2.3,执行以下命令打包,结果将在target目录下生成.war文件
mvn clean package
2.4,将war包放到Tomcat的webapps路径下,启动Tomcat,然后访问就可以了。PS:war包部署的默认访问方式和jar包的有点不同,war包访问URL需要加上项目名,例如:http://localhost:8989/yn-tool-0.0.1-SNAPSHOT/index
到此这篇关于详解springboot项目带Tomcat和不带Tomcat的两种打包方式的文章就介绍到这了,更多相关springboot Tomcat打包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Mybatis中 mapper-locations和@MapperScan的作用
这篇文章主要介绍了Mybatis中 mapper-locations和@MapperScan的作用,mybatis.mapper-locations在SpringBoot配置文件中使用,作用是扫描Mapper接口对应的XML文件,需要的朋友可以参考下2023-05-05spring声明式事务@Transactional开发常犯的几个错误及最新解决方案
使用声明式事务@Transactional进行事务一致性的管理,在开发过程中,发现很多开发同学都用错了spring声明式事务@Transactional或使用不规范,导致出现各种事务问题,这篇文章主要介绍了spring声明式事务@Transactional开发常犯的几个错误及解决办法,需要的朋友可以参考下2024-02-02Spring中的DeferredImportSelector实现详解
这篇文章主要介绍了Spring中的DeferredImportSelector实现详解,两个官方的实现类AutoConfigurationImportSelector和ImportAutoConfigurationImportSelector都是Spring Boot后新增的实现,需要的朋友可以参考下2024-01-01
最新评论