前言

说起IntelliJ IDEA 可谓是作为一名开发者必须知道的神器了,便捷高效,但不知道是升级了新的Idea软件,还是网络不通畅缘故,笔者这两天老遇到一个创建超时的问题。

idea 创建springboot 项目无法启动 idea创建springboot项目很慢_maven改spring


用 IDEA 创建 Spring Boot项目时总是失败,搞得我很郁闷,所以诞生了这篇小技巧文章!本文给出几种创建Spring Boot项目的解决或备选方案,让你再也不用创建不了Spring Boot项目而骂 IDEA了。

idea 创建springboot 项目无法启动 idea创建springboot项目很慢_intellij idea_02


接下来,好戏开场了~

1.idea原生方式创建

用过 IDEA企业版 的都知道,在新建项目时候,创建地址直接是用默认的 https://start.spring.io,但同时,它也是最容易失败的一个,最主要原因是他是个国外网站,所以你懂得,这网站访问起来并不太稳定。

如图:

idea 创建springboot 项目无法启动 idea创建springboot项目很慢_maven_03


如果你是用的 IDEA 社区版,则用这个插件:

idea 创建springboot 项目无法启动 idea创建springboot项目很慢_创建springboot超时_04

2.阿里云方式创建

打开https://start.spring.io你会发现,是个用来生成的springboot项目结构的在线工具,按照国内传统,自然出现了类似的网站。比如,阿里巴巴就搞了一个:https://start.aliyun.com,所以,我们在构建项目时,选择下面那个,填入: https://start.aliyun.com 即可,如图:

idea 创建springboot 项目无法启动 idea创建springboot项目很慢_maven_05


但是用这个地址的,需注意:

  • 项目版本更新慢,目前 Spring Boot 最新稳定版是 2.4.5,但是这里只能选择到 2.4.1版。
  • 项目构建成功后,pom文件中没有 parent标签,是通过自定义 dependenceManagement 标签来统一处理版本问题,所以创建完了需要再 手动调整下项目结构

3.Spring Boot 中文社区方式创建

除了阿里云之外,国内还要一个跟 https://start.spring.io 类似的网站——Spring Boot 中文社区的 https://start.springboot.io, 这个是国内网站,访问速度还是可以的。目前创建成功率很高。
使用它,两种方式。

第一种:直接打开该 在线网站,然后填写项目信息,点击generate,就会自动下载了:

如图:

idea 创建springboot 项目无法启动 idea创建springboot项目很慢_创建springboot超时_06


第二种:在IDEA中,填写他的网站地址,再创建。

如图:

idea 创建springboot 项目无法启动 idea创建springboot项目很慢_创建项目_07


这个总体来说还是不错的。

4.maven项目的方式创建

上述方案都是基于Spring Boot结构而出发的,如果都不行了,那么还可以用这个方案。这方案,目前很多仍然再用eclipse的朋友,应该熟悉。

早期使用过 Maven 的朋友不难看出,Spring Boot 项目结构跟 Maven项目类似 ,所以我们可以通过先 创建 Maven工程,再手动经过添加依赖,新建启动类,添加注解,添加配置文件等方式 改造为Spring Boot 项目,照样可以。

具体步骤:

4.1.创建maven项目

可以用idea或eclipse等其他编辑器创建maven项目。

idea 创建springboot 项目无法启动 idea创建springboot项目很慢_maven改spring_08


然后输入GroupId包名与ArtifactId项目名,Version版本号等信息,点击finished,完成Maven项目的创建。

4.2.改造maven项目

A.首先在pom.xml用 parent 标签来配置 父依赖,用于继承 指定spring-boot的版本。(当然如果你不想使用parent,那就用dependencyManagement来声明也行)

<!--指定springboot版本-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.4</version>
    </parent>

图示:

idea 创建springboot 项目无法启动 idea创建springboot项目很慢_maven改spring_09


只需要在这里指定Spring Boot的版本号。如果导入其他spring boot的starters组件,你可以完全省略版本号。

B.然后再加入spring-boot-web依赖包(毕竟是个BS架构),而且可以 不写版本号

<!--引入web依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

注:添加后请import下maven。

idea 创建springboot 项目无法启动 idea创建springboot项目很慢_maven_10

C.然后新建启动类,开启启动注解

新建一个java类:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ApplicationStart {

    public static void main(String[] args) {
        SpringApplication.run(ApplicationStart.class,args);
        System.out.println("SpringBoot项目启动了...");
    }
}

运行springboot项目。控制台看到 start on port xxxx 的字样表明启动成功了:

idea 创建springboot 项目无法启动 idea创建springboot项目很慢_maven改spring_11


这样,一个由Maven改造的SpringBoot项目就完成了,可以愉快的敲代码了。


小知识

用Spring Initializr 创建项目时,其pom.xml文件中默认会带有两个模块:

<!--默认创建的两个核心模块-可以不添加-->
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter</artifactId>
 </dependency>
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-test</artifactId>
     <scope>test</scope>
 </dependency>

作用是:

  • spring-boot-starter:核心模块,包括自动配置支持、日志和YAML;
  • spring-boot-starter-test:测试模块,包括JUnit、Hamcrest、Mockito。

其中,当你引入springboot-web依赖后,核心模块可以去掉,因为已经包含:

idea 创建springboot 项目无法启动 idea创建springboot项目很慢_intellij idea_12


上述的几种方案就足以解决创建Spring Boot项目超时失败问题,还顺便说了下Maven改SpringBoot项目的步骤。