最近在尝试学习SpringBoot应用,在此记录学习过程中遇到、想到的问题。今天记录下SpringBoot应用的启动方式。
1.main方法启动。(最简单便捷、个人推荐的启动方式)
这个相信每一个学过Java的童鞋都知道,不再赘述。
2.mvn spring-boot:run。
使用命令行进到pom文件所在路径下,执行上述命令即可启动。
3.使用mvn install生成jar包运行
进到项目根目录下,执行mvn install–>cd target–>java -jar xxx.jar(或xxx.war,具体根据创建maven项目时选择的Packaging或根据pom.xml文件中标签内的再或者查看执行mvn install后在target文件夹内生成的后缀)。
执行cd target命令
执行java -jar xxx.jar命令
在尝试方式三启动的时候,小编遇到点坑,特在此记录,如果有遇到相同问题的童靴可参考处理。
- 执行java -jar xxx.jar命令时,报错:Error: Unable to access jarfile xxx-0.0.1-SNAPSHOT.jar
原因分析 创建maven项目时Packaging选择的war,在执行项目根目录下执行mvn install时生成的*.war包,而非*.jar包,所以执行java -jar xxx.war才可正常启动应用。如果创建maven项目时Packaging选择的是jar,则执行java -jar xxx.jar命令可正常启动应用。(PS:在此吐槽下网上那些博文,不能说是无脑抄但也差不多,千篇一律,害的我困扰了半天时间都没找到解决方案)
<!-- Spring Boot 启动父依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.3.RELEASE</version>
</parent>
<dependencies>
<!-- Spring Boot web依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 修改代码后自动生效,不需要重启Springboot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!-- 用以监控和管理SpringBoot应用 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.4.RELEASE</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
- 在执行java -jar时还报了个错误:xxx-0.0.1-SNAPSHOT.war中没有主清单属性.
解决方案,请进入微信公众号中查看。