Maven 构建项目

news2024/11/18 9:31:39

Maven 是一个项目管理和构建工具,主要用于 Java 项目。它简化了项目的构建、依赖管理、报告生成、发布等一系列工作。

  1. 构建自动化:Maven 提供了一套标准化的构建生命周期,包括编译、测试、打包、部署等步骤,通过简单的命令就可以执行。

  2. 依赖管理:Maven 支持自动下载和管理第三方库的依赖,只需在 POM 文件中声明依赖,Maven 就会自动从中央仓库或自定义仓库下载所需的库。

  3. 插件系统:Maven 可以通过插件扩展功能,比如编译插件、测试插件、打包插件等。

  4. 项目结构和标准化:Maven 提供了标准的目录结构和约定,使项目更具可读性和易维护性。

  5. 多模块项目支持:Maven 能够处理包含多个模块的大型项目,每个模块可以单独构建、测试和部署。

Maven 的常用命令:

  • mvn clean:清理项目,删除生成的文件。
  • mvn compile:编译项目。
  • mvn test:运行测试。
  • mvn package:将项目打包成 jar 或 war 文件。
  • mvn install:将生成的文件安装到本地仓库,以供其他项目引用。

文章目录

  • 一、Maven 仓库
    • 仓库的工作流程:
    • 配置仓库:
  • 二、Maven 安装并配置
      • 1. 下载 Maven
      • 2. 配置环境变量
        • Windows 系统:
      • 3. 验证 Maven 安装
      • 4. 配置 Maven (可选)
  • 三、构建Maven项目
    • 3.1 依赖配置
      • 1. 基本的依赖配置格式
      • 2. 范围(Scope)
      • 3. 依赖的排除(Exclusions)
      • 4. 管理依赖版本(Dependency Management)
      • 5. 使用依赖的范围和版本管理的最佳实践
      • 6. 示例完整的 `pom.xml` 文件:
      • 7. 通过 Maven 仓库查找依赖
    • 3.2 生命周期
      • Maven 的生命周期分为三种主要类型:
      • 1. 默认生命周期(Default Lifecycle)
      • 2. 清理生命周期(Clean Lifecycle)
      • 3. 验证生命周期(Site Lifecycle)
      • 4. 生命周期执行顺序
      • 5. 绑定生命周期与插件
      • 6. 自定义生命周期(自定义目标)
      • 总结
    • 3.3 Maven 生命周期中的各个阶段
      • 1. **clean:清理**
      • 2. **compile:编译**
      • 3. **test:测试**
      • 4. **package:打包**
      • 5. **install:安装**
      • 这些阶段的顺序
      • 总结

一、Maven 仓库

在 Maven 中,仓库(Repository)是一个存储和管理项目依赖、插件和构建产物的地方。Maven 支持三个类型的仓库:

  1. 本地仓库(Local Repository):
    本地仓库是指存储在开发者本机上的 Maven 仓库。当 Maven 构建一个项目时,所有的依赖库(JAR 文件、插件等)会被下载到本地仓库,以便在后续的构建过程中复用,避免每次构建时都从远程仓库下载依赖。默认情况下,本地仓库位于用户的主目录下(例如:~/.m2/repository)。

    本地仓库的作用是:

    • 存储已经下载的依赖,避免重复下载。
    • 存储构建产生的产物,如 JAR 包。

    你可以在 settings.xml 文件中修改本地仓库的位置。

  2. 中央仓库(Central Repository):
    Maven 中央仓库是一个公共的、托管的远程仓库,存储了成千上万的开源依赖包和插件。Maven 默认会从中央仓库下载依赖和插件。中央仓库地址通常是:

    • https://repo.maven.apache.org/maven2/

    Maven 在构建项目时,如果在本地仓库中找不到所需的依赖,就会去中央仓库查找并下载。

  3. 远程仓库(Remote Repository):
    远程仓库是指不在本地的仓库,通常由企业或团队自行托管,用于存储私有依赖或者某些特殊的依赖。Maven 可以配置多个远程仓库,特别是在项目使用了私有依赖时。例如,一些公司会设置自己的 Maven 仓库来存储私有的 JAR 包、插件等。

    配置远程仓库通常是在 pom.xmlsettings.xml 文件中进行。例如:

    <repositories>
      <repository>
        <id>example-repository</id>
        <url>https://example.com/repository</url>
      </repository>
    </repositories>
    

仓库的工作流程:

  1. 当你构建一个 Maven 项目时,Maven 会先检查本地仓库中是否已经存在所需的依赖。
  2. 如果不存在,Maven 会访问配置的远程仓库(例如中央仓库或其他自定义仓库)来查找并下载依赖。
  3. 下载的依赖会被缓存到本地仓库,以便以后使用。

配置仓库:

  • pom.xml:你可以配置依赖和远程仓库。

    <dependencies>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
        </dependency>
    </dependencies>
    
  • settings.xml:你可以配置全局的本地仓库路径、远程仓库、代理等。

    <localRepository>/path/to/local/repo</localRepository>
    

二、Maven 安装并配置

1. 下载 Maven

从 Maven 官方网站下载最新版本的 Maven:

  • 网站地址:https://maven.apache.org/download.cgi
  • 下载二进制文件(Binary zip 或 tar.gz 文件)并解压。

2. 配置环境变量

在安装 Maven 后,需要将它的 bin 目录添加到系统的环境变量中,以便在命令行中全局使用 mvn 命令。

Windows 系统:
  1. 右键点击“此电脑”或“我的电脑”,选择“属性”。
  2. 点击“高级系统设置”。
  3. 在“系统属性”窗口中,点击“环境变量”。
  4. 在“系统变量”部分,找到 Path 变量,双击它。
  5. 点击“新建”,将 Maven 的 bin 目录路径添加进去(例如:D:\develop\apache-maven-3.x.x\bin)。
  6. 点击“确定”保存。

MAVEN_HOME 为maven的解压目录,并将其bin目录加入PATH环境变量。
在这里插入图片描述
path中
在这里插入图片描述

3. 验证 Maven 安装

打开命令行(Windows 中使用 cmd 或 PowerShell,macOS/Linux 使用终端),输入以下命令以确认 Maven 是否已正确安装:

mvn -v

正确安装后,你应该看到 Maven 的版本信息,类似于:

Apache Maven 3.x.x (e.g., 3.8.5)
Maven home: /path/to/your/maven
Java version: 1.8.0_231, vendor: Oracle Corporation

在这里插入图片描述

4. 配置 Maven (可选)

Maven 提供一个全局配置文件 settings.xml,位于 Maven 的安装目录的 conf/ 文件夹中。你也可以在用户目录下创建一个 ~/.m2/settings.xml 文件来配置用户级别的设置。

常见配置:

  • 本地仓库:默认本地仓库是 ~/.m2/repository,可以在 settings.xml 中更改本地仓库的路径。

    <localRepository>/path/to/local/repository</localRepository>
    
<localRepository>D:\develop\apache-maven-3.x.x\mvn_repo</localRepository>
  • 配置阿里云私服::修改 conf/settings.xml 中的 标签,为其添加如下子标签
 <mirror>  
<id>alimaven</id>  
<name>aliyun maven</name>  
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>          
</mirror>

三、构建Maven项目

需要配置
在这里插入图片描述

在这里插入图片描述

3.1 依赖配置

在这里插入图片描述
在 Maven 中,依赖配置是通过 pom.xml 文件来实现的。通过在 pom.xml 中配置依赖项,Maven 会自动下载所需的库,并将它们添加到项目中。

1. 基本的依赖配置格式

Maven 依赖项的基本配置格式如下:

<dependencies>
    <dependency>
        <groupId>group-id</groupId>
        <artifactId>artifact-id</artifactId>
        <version>version</version>
    </dependency>
</dependencies>
  • groupId:指定组织或公司标识,通常是公司域名的反向格式(如 com.example)。
  • artifactId:指定依赖项的名称。
  • version:指定依赖项的版本号。

例如,如果你想使用 Apache Commons Lang 库的 3.12.0 版本,可以这样配置:

<dependencies>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.12.0</version>
    </dependency>
</dependencies>

2. 范围(Scope)

Maven 提供了几种依赖范围(scope)来定义依赖的生命周期。常见的依赖范围有:

  • compile(默认):在编译、测试、运行时都可用。
  • provided:编译和测试时可用,但运行时由容器提供(例如 Servlet API)。
  • runtime:仅在运行时可用,编译时不需要。
  • test:仅在测试时可用,编译和运行时不需要。
  • system:在本地文件系统中指定一个 JAR 文件,且需要手动提供路径。
  • import:用于导入一个 BOM(Bill of Materials)文件,适用于 Maven 版本管理。

示例:

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.7.0</version>
    <scope>test</scope>
</dependency>

这个依赖只会在测试阶段使用。

3. 依赖的排除(Exclusions)

有时 Maven 依赖的某些传递性依赖可能会导致冲突,你可以通过排除某些依赖来避免这种情况。

示例:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.10.0</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>

上面的配置会排除 jackson-databind 库的 commons-logging 依赖。

4. 管理依赖版本(Dependency Management)

为了集中管理版本信息,Maven 提供了 dependencyManagement 标签。在父 pom.xml 中定义版本信息,子项目可以使用没有版本号的依赖声明,Maven 会自动使用父项目中定义的版本。

示例:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.3.8</version>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <!-- No version specified, inherited from dependencyManagement -->
    </dependency>
</dependencies>

5. 使用依赖的范围和版本管理的最佳实践

  • 使用稳定版本:尽量使用稳定版本的依赖,避免使用 SNAPSHOT(开发版)版本,除非有特定需要。
  • 传递性依赖冲突解决:Maven 会自动管理传递性依赖,但如果有版本冲突,可以使用 <exclusion> 标签排除不需要的依赖。
  • 使用依赖管理:对于多模块项目,可以在父项目中集中管理依赖版本,以避免子项目中版本不一致的问题。

6. 示例完整的 pom.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>my-maven-project</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.7.0</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>

7. 通过 Maven 仓库查找依赖

你可以通过 Maven 中央仓库(Maven Central Repository)来查找需要的依赖。可以根据 groupIdartifactIdversion 搜索并复制依赖配置到你的 pom.xml 文件中。

3.2 生命周期

Maven 的 生命周期(Lifecycle)是指一组由 Maven 按顺序执行的阶段,每个阶段都对应着特定的任务或目标。Maven 生命周期定义了构建过程的顺序和组织方式。

Maven 的生命周期分为三种主要类型:

  1. 默认生命周期(Default Lifecycle):负责项目的构建、测试、打包等任务。
  2. 清理生命周期(Clean Lifecycle):负责清理项目生成的文件。
  3. 验证生命周期(Site Lifecycle):负责生成项目的文档、站点等。
    在这里插入图片描述

1. 默认生命周期(Default Lifecycle)

默认生命周期是 Maven 中最常用的生命周期,主要涉及构建项目和生成产物。它由若干个阶段(Phase)组成,执行顺序是固定的。常见的阶段有:

阶段说明
validate验证项目的完整性,检查项目配置是否合法。
compile编译项目的源代码。
test运行单元测试(编译后的代码)。
package打包项目(生成 JAR 或 WAR 文件等)。
verify验证项目是否满足质量标准。
install将构建产物安装到本地仓库(~/.m2/repository)。
deploy将构建产物部署到远程仓库,供其他项目使用。

这些阶段是按顺序执行的,通常是从 validate 开始,到 deploy 结束。也可以通过 mvn 命令指定执行的阶段,例如:

mvn clean install

此命令会依次执行 cleaninstall 阶段,Maven 会从 clean 阶段开始,先清理生成的文件,然后再进行构建和安装。

2. 清理生命周期(Clean Lifecycle)

清理生命周期用于清理项目,通常用于删除目标文件夹(target/)中的构建产物。它包含以下主要阶段:

阶段说明
pre-clean在清理之前执行的任务。
clean删除项目的生成文件,通常是删除 target 目录。
post-clean清理之后执行的任务。

例如,当你运行 mvn clean 时,Maven 会删除 target 目录中所有的构建产物,以确保在重新构建时不会受到旧文件的影响。

3. 验证生命周期(Site Lifecycle)

验证生命周期用于生成项目的站点文档、报告等。它包含以下主要阶段:

阶段说明
pre-site在生成站点之前执行的任务。
site生成项目的站点(例如:HTML 文档、Javadoc 等)。
post-site生成站点之后执行的任务。
site-deploy将生成的站点部署到 Web 服务器或其他目标位置。

例如,执行以下命令会生成项目的站点:

mvn site

4. 生命周期执行顺序

Maven 在执行命令时,会根据你指定的阶段和生命周期按顺序执行。如果你执行了一个生命周期中的某个阶段,Maven 会自动执行该阶段之前的所有阶段。例如,执行 mvn package 会依次执行 validatecompiletestpackage 阶段。

5. 绑定生命周期与插件

每个阶段都可以绑定到一个或多个 Maven 插件,插件负责在执行阶段时执行特定的任务。例如:

  • compile 阶段绑定了 maven-compiler-plugin 插件,用于编译 Java 源代码。
  • test 阶段绑定了 maven-surefire-plugin 插件,用于运行单元测试。

你可以通过 pom.xml 文件来配置插件,并指定插件在某个阶段执行的目标(goal)。

6. 自定义生命周期(自定义目标)

除了 Maven 默认的生命周期外,你还可以在 pom.xml 中定义自定义目标和生命周期。例如,可以为某些自定义任务添加新阶段或目标。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-plugin-plugin</artifactId>
            <version>3.6.0</version>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>goal-name</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

总结

Maven 生命周期帮助自动化构建过程,并确保在项目构建过程中按正确的顺序执行各个阶段。通过自定义插件和目标,可以进一步扩展 Maven 的功能,满足项目的特殊需求。你只需要按照生命周期定义的顺序执行任务,Maven 会为你完成其他的依赖和构建任务。

3.3 Maven 生命周期中的各个阶段

1. clean:清理

  • 功能:用于清理项目,删除上一次构建生成的文件(通常是删除 target/ 目录)。
  • 目的:确保没有残留的构建文件,避免影响下一次构建。
  • 执行命令
    mvn clean
    
    该命令会删除项目目录中的 target 文件夹。

2. compile:编译

  • 功能:编译项目的源代码。
  • 目的:将项目中的源代码(如 Java 文件)编译成字节码,通常生成 .class 文件。
  • 执行命令
    mvn compile
    
    该命令会在 target/classes 目录下生成编译后的字节码文件。

3. test:测试

  • 功能:运行单元测试。
  • 目的:运行项目中的测试代码,确保项目功能正确。测试结果会输出到控制台,并生成测试报告。
  • 执行命令
    mvn test
    
    该命令会使用 maven-surefire-plugin 插件执行 src/test/java 中的测试类,验证项目代码的正确性。

4. package:打包

  • 功能:将编译和测试后的代码打包成 JAR、WAR 或其他格式的文件。
  • 目的:生成项目的最终产物,以便发布或部署。
  • 执行命令
    mvn package
    
    该命令会根据项目的配置打包文件,通常生成 target/ 目录下的 .jar.war 文件。

5. install:安装

  • 功能:将打包生成的文件安装到本地 Maven 仓库中,以便其他项目依赖。
  • 目的:使得其他项目能够使用该项目生成的构建产物作为依赖。
  • 执行命令
    mvn install
    
    该命令会将生成的 JAR 文件安装到本地 Maven 仓库(通常是 ~/.m2/repository 目录)。这样其他 Maven 项目可以通过该依赖来使用该项目。

这些阶段的顺序

通常,执行命令会按顺序执行这些阶段。例如,如果你运行了 mvn clean install,Maven 会按照以下顺序执行:

  1. clean:先删除 target 目录。
  2. compile:编译项目的源代码。
  3. test:运行单元测试。
  4. package:将项目打包。
  5. install:将生成的包安装到本地仓库。

总结

Maven 的这几个阶段通常按顺序执行,clean 阶段清理文件,compile 阶段编译,test 阶段进行单元测试,package 阶段打包,install 阶段将结果安装到本地仓库。这些阶段是 Maven 构建过程中的核心步骤,确保项目能够顺利构建并准备好发布。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2242727.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++笔记】C++三大特性之多态

【C笔记】C三大特性之多态 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;C笔记 文章目录 【C笔记】C三大特性之多态前言一.多态1.1 多态的概念1.2 虚函数1.3 虚函数的重写/覆盖1.4 多态的定义及实现 二.虚函数重写的⼀些其他问题2.1 协变(…

【项目实战】基于 LLaMA-Factory 通过 LoRA 微调 Qwen2

【项目实战】基于 LLaMAFactory 通过 LoRA 微调 Qwen2 一、项目介绍二、环境准备1、环境准备2、安装LLaMa-Factory3、准备模型数据集3.1 模型准备3.2 数据集准备 三、微调1、启动webui2、选择参数3、训练 四、测试五、总结 一、项目介绍 LLaMA-Factory是一个由北京航空航天大学…

内容占位符:Kinetic Loader HTML+CSS 使用CSS制作三角形原理

内容占位符 前言 随着我们对HTML和CSS3的学习逐渐深入&#xff0c;相信大家都已经掌握了网页制作的基础知识&#xff0c;包括如何使用HTML标记构建网页结构&#xff0c;以及如何运用CSS样式美化页面。为了进一步巩固和熟练这些技能&#xff0c;今天我们一起来完成一个有趣且实…

SpringSecurity 鉴权认证入门讲解

​ Spring Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro&#xff0c;它提供了更丰富的功能&#xff0c;社区资源也比Shiro丰富。 ​ 一般来说中大型的项目都是使用SpringSecurity 来做安全框架。小项目有Shiro的比较多&#xff0c;因为相比与Sp…

【插件】多断言 插件pytest-assume

背景 assert 断言一旦失败&#xff0c;后续的断言不能被执行 有个插件&#xff0c;pytest-assume的插件&#xff0c;可以提供多断言的方式 安装 pip3 install pytest-assume用法 pytest.assume(表达式,f’提示message’) pytest.assume(表达式,f‘提示message’) pytest.ass…

虾皮:LLM注意力机制的下沉现象分析

&#x1f4d6;标题&#xff1a;When Attention Sink Emerges in Language Models: An Empirical View &#x1f310;来源&#xff1a;arXiv, 2410.10781 &#x1f31f;摘要 &#x1f538;语言模型&#xff08;LM&#xff09;将大量注意力分配给第一个标记&#xff0c;即使它在…

MyBatis的select标签的resultType属性

在MyBatis框架中&#xff0c;映射文件中select标签的resultType属性&#xff0c;用于指定从数据库查询返回结果集需要映射的Java类型&#xff0c;即Mapper接口中方法返回值类型(或集合中的泛型类型)&#xff0c;可以是基本数据类型、基本数据类型的包装类型、自定义的PO类型、集…

ubuntu20.04如何升级python3.8到python3.10

主要参考了这两个链接&#xff1a; 如何在Ubuntu 20.04安装Python 3.10 | myfreaxhttps://www.myfreax.com/how-to-install-python-3-10-on-ubuntu-20-04/#:~:text%E5%9C%A8%E8%B0%83%E8%AF%95%E5%92%8C%E5%85%B6%E4%BB%96%E5%B7%A5%E5%85%B7%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%B…

AWTK-WIDGET-WEB-VIEW 发布

awtk-widget-web-view 是通过 webview 提供的接口&#xff0c;实现的 AWTK 自定义控件&#xff0c;使得 AWTK 可以方便的显示 web 页面。 项目网址&#xff1a; https://gitee.com/zlgopen/awtk-widget-web-view webview 提供了一个跨平台的 webview 接口&#xff0c;是一个非…

丹摩征文活动|FLUX.1+ComfyUI部署与使用

丹摩征文活动&#xff5c;FLUX.1ComfyUI部署与使用 1.引言 在人工智能飞速发展的今天&#xff0c;丹摩智算平台&#xff08;DAMODEL&#xff09;以其卓越的AI算力服务脱颖而出&#xff0c;为开发者提供了一个简化AI开发流程的强大工具。通过租赁GPU资源&#xff0c;丹摩智算平…

性能高于Transformer模型1.7-2倍,彩云科技发布基于DCFormer架构通用大模型云锦天章

2017年&#xff0c;谷歌发布《Attention Is All You Need》论文&#xff0c;首次提出Transformer架构&#xff0c;掀开了人工智能自然语言处理&#xff08;NLP&#xff09;领域发展的全新篇章。Transformer架构作为神经网络学习中最重要的架构&#xff0c;成为后来席卷全球的一…

【异常解决】Linux shell报错:-bash: [: ==: 期待一元表达式 解决方法

博主介绍&#xff1a;✌全网粉丝21W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…

Linux解决普通用户无法使用sudo指令的问题

问题描述&#xff1a; Linux解决普通用户无法使用sudo指令的问题 sudo 指令是允许 普通用户 临时 以 超级用户 root 的权限运行。 普通用户如果没有配置而直接使用 sudo 指令&#xff1a;系统会提示没有权限&#xff08;如下图&#xff09; 使用sudo时系统提示&#xff08;当前…

9.1 使用haarcascade_frontalface_default.xml分类器对静态图像进行人脸检测。

1&#xff09;程序代码&#xff1a; # 1. 使用haarcascade_frontalface_default.xml分类器对静态图像进行人脸检测。 import cv2 import numpy as np # 构造级联分类器对象face_cascade cv2.CascadeClassifier(./data/haarcascades/haarcascade_frontalface_default.xml# ./…

【Mysql】Mysql函数----字符串函数

1、字符串函数 函数 描述 示例 CHAR_LENGTH(S) 返回字符串S的字符个数 返回字符串runoob的字符个数&…

(干货)Jenkins使用kubernetes插件连接k8s的认证方式

#Kubernetes插件简介 Kubernetes 插件的目的是能够使用 Kubernetes 配合&#xff0c;实现动态配置 Jenkins 代理&#xff08;使用 Kubernetes 调度机制来优化负载&#xff09;&#xff0c;在执行 Jenkins Job 构建时&#xff0c;Jenkins Master 会在 kubernetes 中创建一个 Sla…

微积分第五版课后习题答案详解PDF电子版 赵树嫄

(一) 习题解答与注释 该部分基本上对《微积分》(第五版) 中的习题给出了解答&#xff0c; 并结合教与学作了大量注释。通过这些注释&#xff0c; 读者可以深刻领会教材中基本概念的准确含义&#xff0c; 开阔解题思路&#xff0c; 掌握解题方法&#xff0c; 避免在容易发生错误…

【Linux庖丁解牛】—权限!

目录 1、shell命令以及运行原理 2、Linux中的用户及用户切换 3、sudo指令 ​编辑 4、角色与目标属性 5、修改权限 5.1修改文件属性(chmod) 5.2修改文件角色(chown/chgrp) 6、rwx对目录意味着什么 7、Linux中多用户之间的相互“隔离” 8、Linux中的缺省权限 ​编辑 9…

uniapp对接极光推送,实现消息推送功能

通过集成JG-JPush和JG-JCore插件&#xff0c;可以在应用中添加消息推送功能&#xff0c;向用户发送通知、消息等。这对于提升用户体验、增加用户粘性非常有帮助‌。 效果图&#xff1a; 一、登录极光官网 官网链接&#xff1a;portalhttps://www.jiguang.cn/console/#/home点…

【3D Slicer】的小白入门使用指南八

3D Slicer DMRI(Diffusion MRI)-扩散磁共振认识和使用 0、简介 大脑解剖 ● 白质约占大脑的 45% ● 有髓神经纤维(大约10微米轴突直径) 白质探索 朱尔斯约瑟夫德杰林(Jules Joseph Dejerine,《神经中心解剖学》(巴黎,1890-1901):基于髓磷脂染色标本的神经解剖图谱)…