CoderYanger头像
关注
Java EE 进阶:3.SpringBoot 快速上手(第一弹):配置环境封面图

Java EE 进阶:3.SpringBoot 快速上手(第一弹):配置环境

目录

1.环境准备

2.Maven

2.1 什么是 Maven

2.2 为什么要学 Maven

2.4 Maven 核心功能

2.4.1 项目构建

2.4.2 依赖管理

依赖配置

依赖传递

依赖排除

1.4.3 Maven Help 插件

2.5 Maven 仓库

2.5.1 本地仓库

2.5.2 中央仓库

2.5.3 私有服务器,也称为私服

2.6 Maven 设置国内源

2.6.1 配置当前项目 setting

2.6.2 设置新项目的 setting


本节目标

1.了解 Maven,并配置国内源

2.使用 SpringBoot 创建一个项目,输出 HelloWorld

1.环境准备

自检 IDEA 版本:

社区版:2021.1 - 2022.1.4

专业版:无要求

如果个人电脑安装的 IDEA 不在这个范围,需要卸载重新安装

IDEA 卸载参考:彻底卸载并重装IntelliJ IDEA指南-CSDN博客(一定要删除注册表)

闲聊:因为社区版想创建 SpringBoot 项目,需要安装一个插件,但是这个插件还是收费的

有免费版本的插件,但是要求 IDEA 版本在 2021.1~2022.4

官方下载地址:IntelliJ IDEA | 其他版本

2.Maven

2.1 什么是 Maven

官方对于 Maven 的描述:

Apache Maven is a software project management and comprehension tool.Based on the concept of a project object model(POM),Maven can manage a project's build,reporting and documentation from a central piece of information

引用来自:Welcome to Apache Maven – Maven

翻译过来就是:

Maven 是一个项目管理工具,基于 POM(Project Object Model,项目对象模型)的概念,Maven 可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件

大白话:Maven 是一个项目管理工具,通过 pom.xml 文件的配置获取 jar 包,而不用手动去添加 jar 包

2.2 为什么要学 Maven

一句话:简单,方便,提高我们的开发效率,减少我们的开发 Bug

Maven 提供的功能非常多,Maven 在咱们课程中的主要体现主要是以下两个方面:

1.项目构建

2.管理依赖

2.3 创建一个 Maven 项目

IDEA 本身已经集成了 Maven,我们可以直接使用,无需安装

以下截图的 IDEA 版本为:2022.1.4,不同版本的 IDEA 界面展示会有所不同

File→New→Project

点击 Create,就创建好了一个 Maven 项目

中文版👇

不要在打开文件后再创建 Maven 会导致卡死(这是 IDEA 的一个 BUG,到现在还没有解决办法),我们需要在主页面中创建

2.4 Maven 核心功能

接下来,我们结合项目,介绍 Maven 在项目开发中的作用

主要体现在两个方面:

1.项目构建

2.管理依赖

2.4.1 项目构建

Maven 提供了标准的,跨平台(Linux,Windows,MacOS等)的自动化项目构建方式

当我们开发了一个项目之后,代码需要经过编译,测试,打包,发布等流程,每次代码的修改,都需要经过这些流程,如果代码反复调试修改,这个流程就需要反复进行,就显得特别麻烦,而 Maven 给我们提供了一套简单的命令来完成项目的构建

比如,点击 package,就可以完成项目的打包操作

出现 BUILD SUCCESS 表示成功了~~

上面的红框表示 jar包 的路径~~

这个就是打的 jar 包

闲聊:点击package后就会默认把上面都执行完,所以有时候为了偷懒会直接点击package~~

打包就是把所有的 class 文件,全部放在一起,打成 jar 包或者 war 包

jar 包和 war 包都是一种压缩文件

jar 包就是把开发人员已经写好的一些代码进行打包,打好的 jar 包就可以引入到其他项目中,也可以直接使用这些 jar 包中的类和属性,另外也可以打包成可执行 jar 包,这样的包就可以通过 java -jar 命令来执行

war 包可以理解为是一个 web 项目,里面是项目的所有东西,通常用于网站

闲聊:如何启动 jar 包??

之前讲过的👇

这就启动了我们的程序,我们可以把很多程序打成 jar 包,然后这样就可以运行了,当然,我们不用这种方式,这里只是提一嘴~~

咱们 Maven 打包比较简单,直接 package 就完事了

2.4.2 依赖管理

上面说到,Maven 是一个项目管理工具,通过 pom.xml 文件的配置获取 jar 包,而不用手动去添加 jar 包

获取的 jar 包,其实就是依赖

pom.xml 就是 maven 的配置文件,用以描述项目的各种信息

依赖配置

依赖:指当前项目运行所需要的 jar 包

比如前面学习 JDBC 时,我们需要手动下载 mysql-connector-java 的包,并且添加到项目中

如果使用 Maven,我们只需要在 pom.xml 中引入 mysql-connector-java 的依赖就可以了

<dependencies>
    <!--里面放置项目的依赖坐标,可为多个 -->
</dependencies>

1.在 pom 文件<dependencies>标签内,添加依赖坐标

    <dependencies>
        <dependency>
            <!--groupId:组织ID,表示公司-->
            <groupId>com.mysql</groupId>
            <!--artifactId:项目ID-->
            <artifactId>mysql-connector-j</artifactId>
            <!--version:版本信息-->
            <version>8.0.33</version>
        </dependency>
    </dependencies>

2.点击刷新按钮,引入新加入的依赖 jar 包

后续有添加新的 jar 包,或者修改 jar 包版本;都需要通过该方式在项目中添加依赖

(因为这和 Java 不同,不是立即生效的,需要点击刷新之后才能生效)

3.刷新完之后,就可以在项目中看到新加入的 jar 包

依赖传递

早期我们没有使用 maven 时,向项目中添加依赖的 jar 包,需要把所有的 jar 包都复制到项目工程下,比如 A 依赖 B,B 依赖 C,那么 A 项目引入 B 的同时,也需要引入 C,如果我们手动管理这个依赖,这个过程就会比较麻烦,我们需要知道每个库都依赖哪些库,以及这些依赖之间的版本是如何关联的

比如我们要吃火锅,需要有锅,有调料,有食材,以及确认什么样的锅,什么样的食材

比如去医院看病,需要带上以往的病例,检查结果,处方等,并且要确认带的资料是正确的,如果日期错了,或者患者错了,带少了,就需要回去重新拿

但使用 maven 的话,就可以避免管理所需依赖的关系,我们只需要在 pom 文件中,定义直接依赖就可以了,由于 maven 的依赖具有传递性,所以会自动把所依赖的其他 jar 包也一起导入

比如吃火锅,现在我们可以点一个海底捞外卖,直接就把所有食材都送过来了,包括什么锅,配什么菜

比如去医院看病,借助“互联网”,实现了信息共享,只需要带上身份证,以往的病历和检查结果就都可以看到了

如上图,项目 A 通过 Maven 引入 Jar A 时,会自动引入 Jar B 和 Jar C

Jar A 和项目B 就是项目 A 的直接依赖

Jar B,Jar C 是间接依赖

直接依赖:在当前项目中通过依赖配置建立的依赖关系

间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

依赖排除

当前阶段我们需要依赖的库并不多,但随着项目的越来越复杂,库之间的依赖关系也会变得越来越复杂

如上图中,如果项目 A 不需要 Jar B,也可以通过排除依赖的方式来实现

排除依赖:

指主动断开依赖的资源(被排除的资源无需指定版本)

右键后点击 Exclude 即可排除~~

比如,我下了一个快递单子,默认会有一个服务,就是快递小哥会上门取件,但是我刚好出门,而且顺路经过站点,也可以选择自己送过去

    <dependencies>
        <dependency>
            <!--groupId:组织ID,表示公司-->
            <groupId>com.mysql</groupId>
            <!--artifactId:项目ID-->
            <artifactId>mysql-connector-j</artifactId>
            <!--version:版本信息-->
            <version>8.0.33</version>
            
            <!--排除依赖-->
            <exclusions>
                <exclusion>
                    <artifactId>protobuf-java</artifactId>
                    <groupId>com.google.protobuf</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--再添加回来-->
        <dependency>
            <artifactId>protobuf-java</artifactId>
            <version>3.21.9</version>
            <groupId>com.google.protobuf</groupId>
            <!--指定你想要的版本-->
            <version></version>
        </dependency>
    </dependencies>
 

当然如果你不想指定版本,它也会按照最短路径来生效的~~

maven 还有一些功能是依赖调解,可选依赖等

依赖调解:

当项目中的存在依赖冲突时,例如 存在这样的依赖:

A→B→C→X(1.0)

A→D→X(2.0)

Maven 会采用最短路径优先的原则去选择依赖,这里 2 的依赖路径更短,所以会选择X(2.0),当然我们也可以选择指定某个依赖的版本,当然也可以指定 X 版本

1.4.3 Maven Help 插件

当项目比较复杂时,我们就会有 Jar 包冲突的问题,这时候就需要去解决依赖冲突,解决冲突之前,需要先找到冲突,我们可以使用 Maven Help 插件来观察包和包之间的依赖关系

理解“插件”(plugin)

天火+擎天柱→会飞的擎天柱

天火在牺牲之前把自己变成了擎天柱的“飞行插件”,在擎天柱需要起飞的时候就变成翅膀装在擎天柱身上,不需要起飞的时候就卸下来放到擎天柱的集装箱里

程序开发的时候也经常如此

像 IDEA 这样的程序虽然功能强大,但是也无法面面俱到,对于一些特殊场景的功能,开发者就可以开发一些“插件”,如果需要这个插件,就单独安装

插件就是对程序的一些特定场景,做出一些特定的功能的扩展

安装插件:File→Setting→Plugins→搜索'Maven Help'→找到对应插件,点击 Install 安装即可,安装后要重启下 IDEA,才能生效

安装之后,打开 pom 文件,可以看到 Jar 包之间的依赖关系

我们发现用 Maven 引入 MySQL 的时候会把 protobuf 也引入进来

也可以右键排除掉一些依赖

2.5 Maven 仓库

我们通过短短几行代码,就把依赖 jar 包放在了项目里,具体是如何做的呢?

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.30</version>
</dependency>
 

这个代码,我们称之为“坐标”,也就是唯一的(全球唯一)

在 Maven 中,根据 groupId、artifactId、version 的配置,来唯一识别一个 jar 包,缺一不可

当我们在 pom 文件中配置完依赖之后,点击刷新,Maven 会根据坐标的配置,去仓库里寻找 Jar 包,并下载下来,添加到项目中,这个 Jar 包下载的地方就称为仓库

仓库:用于存储资源,管理各种 jar 包

Maven 仓库的本质就是一个目录(文件夹),这个目录被用来存储开发中所有依赖(jar 包、插件等)

Maven 仓库分为两大类:本地仓库和远程仓库,其中远程仓库又分为中央仓库,私服 和其他公共库~~

2.5.1 本地仓库

本地仓库:自己计算机上的一个目录(用来存储 jar 包)

当项目中引入对应的依赖 jar 包后,首先会查找本地仓库中是否有对应的 jar 包

如果有,则在项目直接引用

如果没有,则去中央仓库中下载对应的 jar 包本地仓库(这个可能会等待一段时间,因为网站是在国外)

本地仓库地址可以通过 Maven 配置查看:

File→Settings

(建议本地仓库的路径不出现中文)

如果要修改的话,就可以在D盘新建一个目录,然后把下面位置的文件粘贴过去,然后重写成 D 盘即可👇

查看该仓库目录,可以看到该目录下有很多的 jar(最开始是空的,随着 Maven 的使用,该仓库下文件会越来越多)

这里就是我们下载的 jar 包👇

2.5.2 中央仓库

中央仓库:maven 软件中内置一个远程仓库地址,就是中央仓库,服务于整个互联网,由 Maven 团队维护,全球唯一

仓库地址:Central Repository:

比如查找 com.mysql mysql-connector- j,我们按下 Ctrl + F 开启搜索,先找 com,再找 mysql,就找到了我们的 jar 包👇

可以通过 https://mvnrepository.com/ 这个网站来查询并下载

在这里我们能找到 MySQL 的历代发布版本,其中红色的是全球爱好者发现的版本漏洞,我们点击进去可以查看漏洞的详情👇

如果发现漏洞,在这个 jar 包发布之后也不能改了,只能再升级一个版本去修复这个漏洞

我们点击版本后直接复制下面这段代码到本地即可👇

我们可以把自己写好的 Jar 包上传到中央仓库(具备一定的要求),也可以从中央仓库下载 Jar 包

查找 Jar 的坐标

1.访问 https://mvnrepository.com/

2.进行查找,比如 mysqll

3.选择要添加的 Jar 包版本

4.查看 Jar 包对应坐标

2.5.3 私有服务器,也称为私服

私服:一般由公司团队搭建的私有仓库(我需要让公司里的人用,但是我还不想让其他人用,一般需要用到私服的账号和密码~~)

私服属于某个公司,或者某个部门,往往需要一定权限

有了私服之后,Maven 依赖下载的顺序又发生了变化

当 Maven 需要下载资源的时候

1.先从本地仓库获取,本地仓库存在,则直接返回

2.如果本地仓库没有,就从私服请求,私服存在该资源,就直接返回

3.如果私服上不存在该资源,则从中央仓库下载,中央仓库不存在,就报错了……

4.如果中央仓库中存在,就先缓存在私服上之后,再缓存到本地仓库里,再为 Maven 的下载请求提供服务

私服是很多人在使用的,所以只需要第一个使用者下载一次就可以了

2.6 Maven 设置国内源

因为中央仓库在国外,所以下载起来会比较慢,所以咱们选择借助国内一些公开的远程仓库来下载资源

闲聊:有些公司很好,比如 阿里巴巴,新建了一个镜像仓库,将国外的资源全录了过来,放在国内服务器,这样我们就可以在国内用了~~

接下来介绍,如何设置国内源(以阿里巴巴为例)

2.6.1 配置当前项目 setting

拿出我们提前准备的 setting 文件,放到这里👇(如果已存在,就不要覆盖了,下面会说怎么改)

这个 setting 文件源码如下👇

<?xml version="1.0" encoding="UTF-8"?>

<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<!--
 | This is the configuration file for Maven. It can be specified at two levels:
 |
 |  1. User Level. This settings.xml file provides configuration for a single user,
 |                 and is normally provided in ${user.home}/.m2/settings.xml.
 |
 |                 NOTE: This location can be overridden with the CLI option:
 |
 |                 -s /path/to/user/settings.xml
 |
 |  2. Global Level. This settings.xml file provides configuration for all Maven
 |                 users on a machine (assuming they're all using the same Maven
 |                 installation). It's normally provided in
 |                 ${maven.conf}/settings.xml.
 |
 |                 NOTE: This location can be overridden with the CLI option:
 |
 |                 -gs /path/to/global/settings.xml
 |
 | The sections in this sample file are intended to give you a running start at
 | getting the most out of your Maven installation. Where appropriate, the default
 | values (values used when the setting is not specified) are provided.
 |
 |-->
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->

  <!-- interactiveMode
   | This will determine whether maven prompts you when it needs input. If set to false,
   | maven will use a sensible default value, perhaps based on some other setting, for
   | the parameter in question.
   |
   | Default: true
  <interactiveMode>true</interactiveMode>
  -->

  <!-- offline
   | Determines whether maven should attempt to connect to the network when executing a build.
   | This will have an effect on artifact downloads, artifact deployment, and others.
   |
   | Default: false
  <offline>false</offline>
  -->

  <!-- pluginGroups
   | This is a list of additional group identifiers that will be searched when resolving plugins by their prefix, i.e.
   | when invoking a command line like "mvn prefix:goal". Maven will automatically add the group identifiers
   | "org.apache.maven.plugins" and "org.codehaus.mojo" if these are not already contained in the list.
   |-->
  <pluginGroups>
    <!-- pluginGroup
     | Specifies a further group identifier to use for plugin lookup.
    <pluginGroup>com.your.plugins</pluginGroup>
    -->
  </pluginGroups>

  <!-- proxies
   | This is a list of proxies which can be used on this machine to connect to the network.
   | Unless otherwise specified (by system property or command-line switch), the first proxy
   | specification in this list marked as active will be used.
   |-->
  <proxies>
    <!-- proxy
     | Specification for one proxy, to be used in connecting to the network.
     |
    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <username>proxyuser</username>
      <password>proxypass</password>
      <host>proxy.host.net</host>
      <port>80</port>
      <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
    -->
  </proxies>

  <!-- servers
   | This is a list of authentication profiles, keyed by the server-id used within the system.
   | Authentication profiles can be used whenever maven must make a connection to a remote server.
   |-->
  <servers>
    <!-- server
     | Specifies the authentication information to use when connecting to a particular server, identified by
     | a unique name within the system (referred to by the 'id' attribute below).
     |
     | NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are
     |       used together.
     |
    <server>
      <id>deploymentRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>
    -->

    <!-- Another sample, using keys to authenticate.
    <server>
      <id>siteServer</id>
      <privateKey>/path/to/private/key</privateKey>
      <passphrase>optional; leave empty if not used.</passphrase>
    </server>
    -->
  </servers>

  <!-- mirrors
   | This is a list of mirrors to be used in downloading artifacts from remote repositories.
   |
   | It works like this: a POM may declare a repository to use in resolving certain artifacts.
   | However, this repository may have problems with heavy traffic at times, so people have mirrored
   | it to several places.
   |
   | That repository definition will have a unique id, so we can create a mirror reference for that
   | repository, to be used as an alternate download site. The mirror site will be the preferred
   | server for that repository.
   |-->
  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
        <mirror>
          <id>aliyunmaven</id>
          <mirrorOf>*</mirrorOf>
          <name>阿里云公共仓库</name>
          <url>https://maven.aliyun.com/repository/public</url>
        </mirror>
  </mirrors>

  <!-- profiles
   | This is a list of profiles which can be activated in a variety of ways, and which can modify
   | the build process. Profiles provided in the settings.xml are intended to provide local machine-
   | specific paths and repository locations which allow the build to work in the local environment.
   |
   | For example, if you have an integration testing plugin - like cactus - that needs to know where
   | your Tomcat instance is installed, you can provide a variable here such that the variable is
   | dereferenced during the build process to configure the cactus plugin.
   |
   | As noted above, profiles can be activated in a variety of ways. One way - the activeProfiles
   | section of this document (settings.xml) - will be discussed later. Another way essentially
   | relies on the detection of a system property, either matching a particular value for the property,
   | or merely testing its existence. Profiles can also be activated by JDK version prefix, where a
   | value of '1.4' might activate a profile when the build is executed on a JDK version of '1.4.2_07'.
   | Finally, the list of active profiles can be specified directly from the command line.
   |
   | NOTE: For profiles defined in the settings.xml, you are restricted to specifying only artifact
   |       repositories, plugin repositories, and free-form properties to be used as configuration
   |       variables for plugins in the POM.
   |
   |-->
  <profiles>
    <!-- profile
     | Specifies a set of introductions to the build process, to be activated using one or more of the
     | mechanisms described above. For inheritance purposes, and to activate profiles via <activatedProfiles/>
     | or the command line, profiles have to have an ID that is unique.
     |
     | An encouraged best practice for profile identification is to use a consistent naming convention
     | for profiles, such as 'env-dev', 'env-test', 'env-production', 'user-jdcasey', 'user-brett', etc.
     | This will make it more intuitive to understand what the set of introduced profiles is attempting
     | to accomplish, particularly when you only have a list of profile id's for debug.
     |
     | This profile example uses the JDK version to trigger activation, and provides a JDK-specific repo.
    <profile>
      <id>jdk-1.4</id>

      <activation>
        <jdk>1.4</jdk>
      </activation>

      <repositories>
        <repository>
          <id>jdk14</id>
          <name>Repository for JDK 1.4 builds</name>
          <url>http://www.myhost.com/maven/jdk14</url>
          <layout>default</layout>
          <snapshotPolicy>always</snapshotPolicy>
        </repository>
      </repositories>
    </profile>
    -->

    <!--
     | Here is another profile, activated by the system property 'target-env' with a value of 'dev',
     | which provides a specific path to the Tomcat instance. To use this, your plugin configuration
     | might hypothetically look like:
     |
     | ...
     | <plugin>
     |   <groupId>org.myco.myplugins</groupId>
     |   <artifactId>myplugin</artifactId>
     |
     |   <configuration>
     |     <tomcatLocation>${tomcatPath}</tomcatLocation>
     |   </configuration>
     | </plugin>
     | ...
     |
     | NOTE: If you just wanted to inject this configuration whenever someone set 'target-env' to
     |       anything, you could just leave off the <value/> inside the activation-property.
     |
    <profile>
      <id>env-dev</id>

      <activation>
        <property>
          <name>target-env</name>
          <value>dev</value>
        </property>
      </activation>

      <properties>
        <tomcatPath>/path/to/tomcat/instance</tomcatPath>
      </properties>
    </profile>
    -->
  </profiles>

  <!-- activeProfiles
   | List of profiles that are active for all builds.
   |
  <activeProfiles>
    <activeProfile>alwaysActiveProfile</activeProfile>
    <activeProfile>anotherAlwaysActiveProfile</activeProfile>
  </activeProfiles>
  -->
</settings>

自己修改的话就在将下面代码加入到 镜像 的部分👇

最主要的是阿里云的 URL 地址~~

这样以后就会优先从国内阿里云下载了,文件准备好了,接下来说说如何配置👇

第一步,将这里设置成刚刚的 setting 文件👇

但是设置完这个之后,只对当前项目生效,对新建的不生效,所以接下来要设置新项目的👇

修改的方式与上面一模一样👇

File→Settings

1.查看配置文件的地址,如上图所示,Maven 配置文件地址为:D:\Maven\.m2\settings.xml

不同电脑设置的 Maven 路径不同

settings 和 repository 可以设置为其他路径,两个路径不要有中文

2.配置国内源

Maven 仓库默认在国外 https://mvnrepository.com/,国内使用时会比较慢,我们可以更换为阿里云的仓库

也可以选择别的仓库,参考:https://zhuanlan.zhihu.com/p/627320558

打开 settings.xml,在 mirrors 节点上,添加内容如下:

<mirror>
    <id>aliyunmaven</id>
    <mirrorOf>central</mirrorOf>
    <name>阿里云公共仓库</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

如果上述地址不存在 settings 文件,则直接复制课件中提供的文件粘贴过去即可

2.6.2 设置新项目的 setting

上述配置的内容,只对当前项目生效,为了让后续新建的项目也生效,需要重新设置一下新项目的 Settings 

当前项目和新项目共用一个 settings 文件即可,所以新项目的设置,只需要确认一下 settings 文件的路经即可

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/Miraitowa_6/article/details/163861722

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--