写在前面

mvn spring-boot:run是什么?
mvn spring-boot:run 是一个命令,是一个插件的执行命令。
根据MAVEN官方文档对插件的定义,我们可以知道一个MAVEN插件会有很多个目标,每个目标就是一个 Mojo 类,比如 mvn spring-boot:run 这个指令,spring-boot这部分是一个MAVEN插件,run这部分是一个MAVEN的目标/指令。

错误内容

[ERROR] Failed to execute goal on project servicex-admin: 
Could not resolve dependencies for project cn.hadoopx:servicex-admin:jar:3.8.3: 
The following artifacts could not be resolved: cn.hadoopx:servicex-framework:jar:3.8.3, cn.hadoopx:servicex-quartz:jar:3.8.3, cn.hadoopx:servicex-generator:jar:3.8.3: Could not find artifact cn.hadoopx:servicex-framework:jar:3.8.3 in public (https://maven.aliyun.com/repository/public) -> [Help 1]

以上错误是由于没有找到依赖的JAR包,这是为什么呢?当项目是由多个模块组成的时候,报错找不到子模块的依赖时,需要提前先将子模块进行install,然后再执行启动命令。

启动方式

基于SpringBoot框架开发的项目,常见的有四种项目启动的方式:
A. 直接使用IDEA运行启动类中的MAIN()方法;
B. 使用mvn spring-boot:run 命令,通过执行spring-boot插件的run目标,来启动项目;
C. 项目打成JAR包后通过 java -jar 命令启动项目;
D. 项目打成WAR包后通过WEB容器启动。

mvn spring-boot:run 命令启动项目

在这之前先学习一下MAVEN的基本概念:MAVEN生命周期、阶段、插件、目标详解

①. 官方文档

使用MAVEN启动项目-Running your Application with Maven

②. 启动前提

只有引入spring-boot-starter-parent、spring-boot-starter-web(可选)、spring-boot-maven-plugin(可选,因为spring-boot-starter-parent中已引入该插件) 依赖之后的项目才可以使用mvn spring-boot:run 的方式启动项目。

③. 插件说明

mvn spring-boot:run命令之所以能够运行基于SpringBoot框架的项目,就是因为项目中使用了SpringBoot自定义的 maven 插件 spring-boot-maven-plugin,接下来我们分析一下spring-boot-maven-plugin插件。
首先,执行:mvn help:describe -Dplugin=org.springframework.boot:spring-boot-maven-plugin -Ddetail 查看插件详细信息:
在这里插入图片描述在这里插入图片描述
①. 描述了该插件的基本信息,同时通过Goal Prefix,指明了spring-boot-maven-plugin插件的前缀是 spring-boot,该插件共有7个目标。
在这里插入图片描述
②. 描述了spring-boot:run这个目标的基本信息,该目标用于执行应用程序,实现了org.springframework.boot.maven.RunMojo类,绑定了validate生命周期阶段,且在目标执行时将会先调用 test-compile 生命周期阶段,同时还罗列了该目标的执行参数。

中文乱码

spring-boot-maven-plugin的编码格式与控制台的窗口的编码需要保持一致,可以同时是GBK/UTF-8,这样就不会出现中文乱码了。

<build>
   <plugins>
     <plugin>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-maven-plugin</artifactId>
       <!--解决maven插件启动时中文乱码问题-->
       <configuration>
         <fork>true</fork>
         <!-- spring-boot:run 中文乱码解决 -->
         <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
       </configuration>
     </plugin>
   </plugins>
 </build>

欢迎交流

请添加图片描述

GitHub 加速计划 / sp / spring-boot
40
8
下载
spring-projects/spring-boot: 是一个用于简化Spring应用开发的框架。适合用于需要快速开发企业级Java应用的项目。特点是可以提供自动配置、独立运行和内置的Tomcat服务器,简化Spring应用的构建和部署。
最近提交(Master分支:3 个月前 )
61e427c1 Closes gh-48516 2 天前
559106f8 This commit adds a smoke test that exercises the SpringProfile extension just like the Logback equivalent. Closes gh-48492 2 天前
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐