之前都是用Eclipse,今天试了下IntelliJ IDEA,搭建了一个Spring Boot 2的Hello world项目。

一、IntelliJ IDEA 下载安装

官网下载:https://www.jetbrains.com/idea/download/
目前版本是2019.2.2。
下载后按默认设置安装。

二、根据自己需要,修改Maven中央仓库地址

备注:本人用的是Maven3.3.9,官方下载地址是 http://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/

默认情况下,maven会到Apache官方仓库下载依赖包,下载速度较慢。
可在maven安装目录\conf\setting.xml增加一个国内阿里云的镜像地址,以加快依赖包的下载速度。

<mirror>
    <id>alimaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>

  

三、IDEA创建Spring Boot 项目

1、初次打开IDEA后,点击右下角Configure,选择Settings,修改maven配置文件setting.xml的位置:
File -> Settings -> Build,Execution,Deployment -> Build Tools -> Maven,修改User settings file的位置,
默认为C:\Users\本机用户名\.m2\settings.xml修改为和Maven的安装位置一致,本人的为:
User settings file:D:\java\apache-maven-3.3.9\conf\settings.xml
修改为Local repository自动变成D:\java\apache-maven-3.3.9\repository

2、创建Spring Boot项目
Create New Project -> Spring Initializr -> Project SDK 默认1.8,Initializr Service URL 默认https://start.spring.io -> Next
-> Project Metadata的所有项目保持默认

idea 没有spring_idea 没有spring

  -> Next-> 选择Web,Spring Web

idea 没有spring_远程仓库_02

  -> Next

Project name:默认demo

idea 没有spring_xml_03

  -> Finish

3、在src/main/java/com.example.demo下新建一个叫controller的Package,在controller下面新建类HelloWorldController 

package com.example.demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloWorldController {
    @RequestMapping("/")
    public String index() {
        return "Hello World!";
    }
}

项目结构如下:

idea 没有spring_idea 没有spring_04

4、点击右上角运行按钮,访问http://localhost:8080/

页面显示:Hello World! 

 

四、关于Maven的简单说明

1、Maven的两大功能
①项目构建
项目构建项目从源代码、编译、测试、打包、部署、运行的过程。
②依赖管理
项目可能需要一些第三方库才可以运行,即项目依赖了这些第三方库。
2、Maven仓库
Maven仓库是存放项目中依赖的第三方库的位置。
任何一个依赖、插件或者项目构建的输出,都可以称之为构件,Maven 仓库能帮助我们管理构件(主要是JAR)。
Maven 仓库有三种类型:
①本地(local)
默认路径名为用户目录下.m2/repository/,在Maven安装目录conf/settings.xml中的localRepository节点修改路径。
构件如果在本地仓库中搜索不到,会到中央仓库或远程仓库搜索,如果找到了则下载到本地仓库中以备将来引用。
②中央(central)
Maven社区提供的包含了大量常用库的仓库,在https://search.maven.org/#browse可以搜索第三方库。
可替换为别的仓库如阿里云仓库,在Maven安装目录conf/settings.xml中的mirror节点修改仓库地址。
③远程(remote)
自己搭建的仓库。
3、配置中央/远程仓库地址的方法
①settings.xml的mirrors设置
②settings.xml的profile设置
③pom.xml的profile设置
④pom.xml的repository设置
仓库优先级(网上说法,未验证):
①本地仓库
②中央仓库(settings里的mirror,未配置默认为central)
③settings.xml的profile设置
④pom.xml的profile设置
⑤pom.xml的repository设置
如果远程仓库需要认证才能访问,则在settings.xml中的servers节点配置访问的认证信息。
可在pom.xml中配置distributionManagement节点,这样Maven能将项目生成的构件部署到远程仓库中,团队成员就可以使用。

 

五、IDEA中Maven插件的Lifecycle部分选项说明

 

idea 没有spring_idea 没有spring_05

clean
清理之前的编译结果(删除target整个目录),为本次项目编译做准备。
compile
编译项目,生成字节码文件,没有jar包;
生成的target中有classes、generated-sources、maven-status目录;
每次都是重新编译;
package
编译项目、单元测试、打包(生成可执行的jar或war包)。
生成的target中有classes、generated-sources、generated-test-sources、maven-archiver、maven-status、surefire-reports、test-classes目录和jar文件;
每次都是重新编译;
install
编译项目、单元测试、打包,将打好的包打到本地仓库(即Maven的conf/settings.xml配置的localRepository路径)。
deploy
编译项目、单元测试、打包,将打好的包打到本地仓库和远程仓库(如没有配置远程仓库,会报错)。

比较,IDEA中Build Project(Ctrl+F9)的说明:
编译包括测试类在内的整个项目,生成字节码文件,没有jar包;
生成的target中有classes、generated-sources、generated-test-sources、test-classes目录;
第一次点Build Project会编译整个项目,第二次点Build Project只会编译修改的文件(例如target里面有A.class和B.class文件,B的代码改了,则编译后A.class的文件修改日期不变,B.class则变了)。