1.1 社区开发前置知识:maven入门

180 阅读5分钟

1. 开发的目标以及相关技术

image-20220708073913843.png

image-20220708073930621.png

image-20220708073942858.png

2. Maven入门

image-20220701082208514.png Maven的作用:maven可以帮我们创建项目编译项目测试项目


1. 设置阿里云maven镜像仓库

首先我们要学习一下如何下载maven,maven有一个中心仓库,从中可以下载相关依赖,但是由于这个中心仓库在国外,maven默认会访问中央仓库,比较慢,所以我们还需要修改一下配置文件使其访问阿里云的镜像仓库。

进入官网下载maven压缩包

maven.apache.org/download.cg…

image-20220701093720092.png

之后将下载好的压缩包进行解压

之后进入解压好的文件夹之中的conf目录修改settings.xml文件去使用阿里云的maven进行仓库

image-20220701094003367.png

之后找到 146 行左右有一个 mirrors 标签,将下面这几行内容粘贴到标签内部,这样访问阿里云镜像仓库就设置好了。

<mirror>
  <id>alimaven</id>
  <mirrorOf>central</mirrorOf>												<!--表示它是谁(中央仓库)的镜像仓库-->
  <name>aliyun maven</name>														<!--取名仓库的名字-->
  <url>https://maven.aliyun.com/repository/central</url>		<!--镜像地址-->
</mirror>

image-20220701094202926.png


2. maven的简单使用

maven默认是采用命令行的方式进行访问的,需要进入到bin目录下,然后打开命令行,cd 到这个目录,来用mvn.cmd这个工具。(工作中我们一般是不会直接敲命令行的,maven会与idea进行集成,到时候直接点击按钮就可以了,但是maven的命令行我们还是要简单的了解一下)

image-20220701094527681.png

当然,为了方便使用,我们可以把这个bin路径配置到环境变量里,这样我们就不需要cd到这个目录了,可以随时随机的使用。

电脑 --> 属性 --> 高级系统设置

image-20220701095707075.png

之后点击 高级 --> 环境变量

image-20220701095759200.png

image-20220701095833924.png

image-20220701095955324.png

之后打开 cmd

在其中输入 mvn -version 查看maven版本,以检验环境变量是否设置成功

image-20220701095955324.png

如果想要更详细了解一下 maven 的话可以看一下官方文档

maven.apache.org/guides/gett…

image-20220701100634461.png

maven可以帮我们创建项目编译项目测试项目,接下来我们来演示一下。

2.1 创建项目

在使用maven命令行进行创建项目时,当我们想要将项目创建在指定目录下时我们首先要 cd 那个指定目录然后再敲 maven 命令,现在我要将项目放在 D:\work\workspace 路径下,所以首先要在cmd下去到 D盘, 然后 cd 到 指定目录,然后在cmd下输入下面的创建项目。

image-20220701101406080.png

mvn archetype:generate -DgroupId=com.nowcoder.mavendemo1 -DartifactId=mavendemo1 -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

创建项目
这里要补充一点关于上面的创建项目命令的知识点
maven命令都是以mvn开头

archetype:generate意思是以模板原型的方式去生成一个文件

-DgroupId意思是组织ID,通常就是写公司域名的倒序,后面还要写上项目的名字,上面的com.nowcoder表示公司域名的倒序,mavendemo1表示项目的名字

-DartifactId表示项目的ID

-DarchetypeArtifactId表示生成项目模板的ID是什么

-DarchetypeVersion表示项目模板版本

-DinteractiveMode表示是否启用交互模式,我们写false,不启用,如果启用交互模式的话每执行一步都会问你
是/否比较麻烦

首先进入 指定目录下

image-20220701101928616.png

然后输入创建项目的命令

image-20220701105246895.png

image-20220701105323882.png

其实点进去我们会发现里面的项目结构和我们使用 idea 集成 maven 创建项目的结构一模一样

项目结构

|-- pom.xml
`-- src
    |-- main
    |   `-- java
    |       `-- com
    |           `-- mycompany
    |               `-- app
    |                   `-- App.java
    `-- test
        `-- java
            `-- com
                `-- mycompany
                    `-- app
                        `-- AppTest.java
2.2 编译项目

我们要编译哪个项目,我们要 cd 到那个项目的目录下(带有 pom.xml 文件的那个目录下)

D:\work\workspace\mavendemo1

然后在cmd里输入下面的命令进行编译

mvn compile

image-20220701110245780.png

编译之后会生成一个 target目录,编译的结果都会放在 target 下

image-20220701110422290.png

image-20220701110543230.png

然后补充一点

# 重新编译

mvn clean  
是把刚才生成的target删掉,也就是把刚才编译的结果删掉
之后再
mvn compile
重新编译

或者我们可以直接输入
mvn clean compile  先清理再编译(重新编译) 

那么如何运行测试代码呢

# 运行测试代码
mvn clean test
我们可以运行上面的代码执行测试的代码

image-20220701111403311.png

安装 IntelliJ IDEA

因为 IntelliJ IDEA的安装比较简单,所以这里并没有详细介绍,只是简单的截了一些图

image-20220701111646524.png

image-20220701112015656.png

image-20220701112129600.png

设置 IDEA 中的 maven

image-20220701112707785.png

创建项目

image-20220701113027084.png

image-20220701113400882.png

image-20220701113259779.png

点击 Finish 就会创建项目了

image-20220701114127914.png

image-20220701114353446.png

Spring Initalizr 的使用

Spring Initalizr 是什么呢?

我们在使用 maven 时,要导入依赖时需要一个一个的搜,但是使用 Spring Initalizr 我们只要搜一个 web 它就能把相关的几十个包都引进来,Spring Initalizr底层还是 maven。(社区版需要去网页使用,专业版 IDEA 直接继承了。)

image-20220701114513097.png

官网

start.spring.io

image-20220701120259653.png

补充需要的这些包

image-20220701120346983.png

之后就会将生成的项目下载下来然后用IDEA打开就可以了

image-20220701121611866.png 社区版IDEA没有直接使用 Spring Initalizr 的功能需要去网页上使用,但是专业版可以直接使用,比较方便,不用这么麻烦

接下来我们来演示一个 Spring Boot 入门案例

image-20220701121601651.png

image-20220701124402694.png

package com.nowcoder.community.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/alpha")
public class AlphaController {

    @RequestMapping("/hello")
    @ResponseBody
    public String sayHello(){
        return "Hello Spring Boot.";
    }
}

image-20220701124527981.png

修改配置文件之后

# 端口,不设置默认就是8080
server.port=8080
# 项目名
server.servlet.context-path=/community 

image-20220701124752973.png

image-20220701124849158.png