当前位置: 首页 > news >正文

Maven

Maven

1.什么是Maven

官方网站 https://maven.apache.org/

Maven是一款服务于Java平台的自动化构建工具,它可以帮助我们更方便的对项目进行构建、管理项目jar包

,包括: bulid 项目,切换 jar 版本,添加 jar, 删除 jar 包等

1.1 Maven下载和安装

  1. 第 1 种方式: 直接使用 idea 自带的 Maven

  2. 第 2 种方式: 自己下载 Maven 软件, 安装、配置并使用.

  3. 下载地址 https://archive.apache.org/dist/maven/maven-3/

image-20230212102531499

安装步骤

  1. 直接解 maven 安装到指定目录

image-20230212102720733

  1. 目录结构说明

image-20230212102730712

  1. maven 使用需要依赖 jdk ,因此事先要保证安装了 jdk1.8 以上
  2. 配置环境变量 MAVEN_HOME

image-20230212102833657

  1. 配置环境变量 PATH, 增加 Maven 的路径, (如果有多个 Maven 的 Path, 可以上移, 提高优先级)

image-20230212102913687

  1. 测试是否安装 maven 成功.

image-20230212102954093

1.2 Maven 工作原理图

image-20230212103046299

  1. 在 maven 项目的 pom.xml, 可以配置项目依赖的 jar(指定坐标即可)
  2. maven 根据配置, 到中央仓库/私服 去获取 jar,下载到本地仓库
  3. maven 项目, 会引用本地仓库的 jar ,完成项目开发
  4. 在 maven 项目构建生命周期中,每个阶段的执行都有相应的插件完成
  5. 各个插件执行过程中,会附带输出内容,比如 jar/war/xml/源码
  6. 程序员可以使用 maven 默认的插件,也可以自定义插件,完成定制任务.

Maven 项目统一的开发结构分析:

image-20230212103231029

2.Maven 相关概念

2.1仓库:存储项目需要的 jar 包

image-20230212103318509

  1. 几乎所有的 jar 包都保存在中央仓库 . 地址: https://mvnrepository.com/

image-20230212103412177

  1. 本地仓库:在使用 maven 时,会将需要的 jar 下载到本地,保存在指定目录下,称为本地仓库(如图)

image-20230212103438524

image-20230212103455961

  1. 私服: 开发团队搭建的存储资源的仓库,可以个性化仓库(比如只供团队使用的 jar), 同时提升下载速度
  2. 我们个人开发时,可以直接从中央仓库下,如果想提升下载速度,可以设置镜像仓库

2.2 坐标

作用: 资源的唯一标识,定位 Maven 仓库中资源的位置

坐标构成

  1. groupld(组织 id): 定义当前 Maven 项目隶属组织名称(例如∶com.spring)
  2. artifactId(项目 ID): 定义当前 Maven 项目名称
  3. version(版本号): 定义当前项目版本号
  4. 如何获取 jar 坐标
  • 比如 mysql jar

image-20230212103758939

3.Maven构建指令

3.1 完成编译

  1. 编译指令
mvn compile

image-20230212104811222

  1. 编程成功,会自动创建 target 目录,并生成对应的.class 文件(如图)

  2. 细节说明: 第一次速度慢,需要下载相关 jar,后面就快了.

image-20230212104959190

3.2完成测试

  1. 测试指令
mvn test
  1. 测试指令执行完毕,会生成 Test 源文件的 class , 还会输出测试结果

  2. 细节说明: 第一次速度慢,需要完成一些初始化工作,后面就快了

image-20230212105454644

image-20230212105606804

3.3 完成打包

  1. 打包指令
mvn package
  1. 打包后,在 target 目录生成对应的 打包文件 jar

image-20230212105932494

3.4 完成安装

  1. 执行 install 指令,能完成 maven 项目的安装,会把打包得到的 jar, 提交到本地仓库

image-20230212110218645

  1. 当把 maven-project01-1.0-SNAPSHOT.jar 提交到本地仓库后,该 jar 也可以被其他 maven 项目使用了,非常方便

3.5完成清理

  1. 执行如下指令,完成 maven 项目的清理,会清除生成的 target 目录

    mvn clean
    

3.6小结 Maven 构建指令

● 说明: Maven 构建命令使用 mvn 开头,后面添加功能参数,可以一次执行多个命令,使
用空格分隔

mvn compile #编译
mvn clean #清理
mvn test #测试
mvn package #打包
mvn install #安装

image-20230212110754112

4.IDEA创建 Maven Web 工程

  1. 需求说明/图解

image-20230212111418347

image-20230212111525956

image-20230212111611291

image-20230212111727971

  1. 创建成功的 maven web 项目结构

    image-20230212111843339

  2. 创建的 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><!--1. 前面三个 groupId , artifactid 和 version 就是该 maven 项目坐标2. package 是打包方式,默认是 jar , 这里是 war(因为这是 web 项目)--><groupId>com.llp</groupId><artifactId>maven-javaWeb</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><name>maven-javaWeb Maven Webapp</name><url>http://www.example.com</url><!--maven项目的属性,根据实际情况可以修改--><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><!--创建maven项目默认引入的jar--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency></dependencies><!--默认引入的 maven 插件, 前面说过 mvn 的各种指令 compile/install/test 等都是由插件完成的 --><build><finalName>maven-javaWeb</finalName><pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --><plugins><plugin><artifactId>maven-clean-plugin</artifactId><version>3.1.0</version></plugin><!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --><plugin><artifactId>maven-resources-plugin</artifactId><version>3.0.2</version></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version></plugin><plugin><artifactId>maven-surefire-plugin</artifactId><version>2.22.1</version></plugin><plugin><artifactId>maven-war-plugin</artifactId><version>3.2.2</version></plugin><plugin><artifactId>maven-install-plugin</artifactId><version>2.5.2</version></plugin><plugin><artifactId>maven-deploy-plugin</artifactId><version>2.8.2</version></plugin></plugins></pluginManagement></build>
</project>
  1. 配置 Tomcat 服务器&运行
  • 为 maven web 项目配置 tomcat

image-20230212112909732

image-20230212112953171

image-20230212113047445

image-20230212113124447

image-20230212113326184

5.Maven依赖管理

5.1依赖配置

一句话: 依赖指当前项目运行需要的 jar,一个项目可以设置多个依赖

● 依赖的举例

    <!--
1. 这里就是引入项目需要的 jar 包, 类似传统的 import jar 的作用
2. 在 dependencies 标签内,可以指定多个需要依赖的 jar/导入的 jar
3. 引入的 jar 包需要一个完整的 jar 包坐标,从 mvn 仓库查询即可得到--><dependencies><!-- 引入的一个具体的依赖 jar, 包括一个完整的依赖坐标 --><dependency><!-- 依赖的 gruopid: 组织名 --><groupId>junit</groupId><!-- 依赖的项目名 --><artifactId>junit</artifactId><!-- 依赖的版本 --><version>4.12</version><scope>test</scope></dependency></dependencies>

5.2依赖传递

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

比如,在项目的pom.xml文件中,引入mysql8.0.27,这时我们就说项目直接依赖了mysql8.0.27

<!--引入mysql依赖-->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.27</version>
</dependency>

5.3间接依赖

间接依赖: 当前项目直接依赖资源(比如 m1), 而 m1 又依赖资源(m2),我们就说 当前项目间接依赖资源(m2)

比如,项目A引入了一个mysql8.0.27的jar,而项目B有引入了A项目的jar,这样就形成了间接依赖

image-20230212114357293

5.4依赖冲突

路径优先

  1. 路径优先∶当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高

  2. 示意图说明:

image-20230212114435859

  1. 项目 A 依赖情况
  • 如果 1 度资源有 junit 4.1 , 而 2 度资源有 junit4.2

  • 根据路径优先原则, 项目 A 生效的是 junit4.1

image-20230212115532807

声明优先

  1. 声明优先∶当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
  2. 示意图说明:

image-20230212115628592

image-20230212120009045

特殊优先

  1. 特殊优先∶当同级配置了相同资源的不同版本,后配置的覆盖先配置的(要尽量避免这种没有意义的冲突)

5.5可选依赖

可选依赖:可选依赖指对外隐藏当前所依赖的资源 - 不透明

    <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.10</version><!--optional:默认是false,表示不隐藏optional:设置为true,表示隐藏,其他模块就没办法使用--><optional>true</optional><scope>test</scope></dependency>

image-20230212120908996

5.6 排除依赖

一句话: 排除依赖指主动断开依赖的资源, 被排除的资源无需指定版本- 不需要

image-20230212121135687

<dependencies><dependency><groupId>com.llp</groupId><artifactId>maven-project-2</artifactId><version>1.0-SNAPSHOT</version><!--1.指定要排除的依赖2.可以排除多个,在exclusions下添加多个exclusion即可--><exclusions><exclusion><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></exclusion></exclusions></dependency>
</dependencies>

image-20230212121400837

5.7可选依赖和排除依赖区别

一句话: 隐藏依赖是不让其他项目来引用(我不给), 排除依赖是主动不要引入的某个资源(我不要)

5.8依赖范围

一句话: 依赖的 jar 默认情况可以在任何地方使用, 通过 scope 标签设定其作用范围

● 作用范围说明

  1. 主程序范围有效(src/main 文件夹范围内)
  2. 测试程序范围有效(src/test 文件夹范围内)
  3. 是否参与打包(package 指令范围内)
  4. compile(默认,在主程序、测试代码、打包都有效)

● 作用范围一览图

image-20230212121709499

  1. 某个引入的 jar 包作用范围是程序员根据,业务的实际需要来设置的,不要认为是固定的。
  2. 比如 log4j jar 包,在主程序,测试代码,打包都是需要的, 因此作用范围应当设置为complie
  3. junit 只是测试代码需要,因此作用范围设置为 test 合适,但是如果程序员认为在主程序和打包就是要 junit, 仍然可以设置为默认 compile
  4. 比如 servlet-api 是 tomcat 自己带的,当把程序打包放到生产环境时,用生产环境tomcat 的 servlet-api 即可,所以设置为 provided 合适,这样就放在 servlet-api 版本冲突.
  5. 比如 jdbc, 是第三方的 jar , 打包放在生产环境,就应当在自己的包提供 jdbc 驱动包,否则程序会因为少驱动包,运行失败

6.Maven 项目构建生命周期

一句话: Maven 构建生命周期描述的是一次构建过程经历了多少个事件

image-20230212122541709

6.1生命周期的 3 大阶段

  1. clean∶清理工作

image-20230212131322297

  1. default∶核心工作,例如编译,测试,打包,部署等

image-20230212131410611

  1. site∶产生报告,发布站点等

image-20230212131427256

6.2 生命周期是分阶段执行的

一句话: 项目构建生命周期分很多阶段,并不是每次都完整执行,而是根据用户的要求
来执行的【比如你执行 compile, 那么就执行到 complie 这个阶段,如果你执行 install, 则会
执行 compile->test->package->install】

7.maven 插件

7.1介绍

  1. 插件与生命周期内的某个阶段绑定,在执行到对应生命周期时, 由对应插件来完成任务/功能.

  2. maven 插件很多,先看一张图:

image-20230212131800070

  1. 通过插件可以自定义其他功能

7.2 文档

文档: http://maven.apache.org/plugins/index.html

7.3自定义插件-应用实例

需求: 在 pom.xml 加入自定义插件,能够在对 maven_D 项目 打包时,能输出主程序和测试程序的源码

● 完成步骤

  1. 当前 package 只会得到项目的 jar

image-20230212133927056

  1. 修改 D:\java_projects\maven_D\pom.xml, 加入 maven 插件 并配置(注意: 加入自定义插件后,可能会爆红,重启项目即可.)
<!-- 在build时, 自定义插件 -->
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>2.2.1</version><executions><execution><goals><!-- 对主程序输出源码打包 --><goal>jar</goal><!-- 对测试程序输出源码打包 --><goal>test-jar</goal></goals><!-- 指定执行阶段 --><phase>generate-test-resources</phase></execution></executions></plugin></plugins>
</build>
  1. 观察一下 maven 项目管理器

image-20230212134020584

  1. 再次执行 maven-D 的 intall 操作, 会得到两个新的 jar ,分别包含了主程序和测试程序的源码。(测试时,需要保证 src/main/… 和 src/test/… 两个目录下有 java 源代码,否则不会生成源码 jar)

image-20230212134052734

image-20230212134057747

7.4maven 插件-maven 构建生命周期关系图

image-20230212134151511

  1. 在 maven 项目构建生命周期中,每个阶段的执行都有相应的插件完成
  2. 各个插件执行过程中,会附带输出内容,比如 jar/war/xml/源码
  3. 程序员可以使用 maven 默认的插件,也可以自定义插件,完成定制任务.
  4. 自定义插件引入成功, 是可以看到

相关文章:

Maven

Maven 1.什么是Maven 官方网站 https://maven.apache.org/ Maven是一款服务于Java平台的自动化构建工具&#xff0c;它可以帮助我们更方便的对项目进行构建、管理项目jar包 &#xff0c;包括: bulid 项目&#xff0c;切换 jar 版本&#xff0c;添加 jar, 删除 jar 包等 1.…...

1947抓住那头牛(队列 广度优先搜索)

目录 题目描述 解析 解题思路 代码部分 代码部分 运行结果 看看len数组中各个位置的标记值 为什么这样做一定是最短路径&#xff1a; 题目描述 农夫知道一头牛的位置&#xff0c;想要抓住它。农夫和牛都位于数轴上&#xff0c;农夫起始位于点N(0<N<100000)&…...

基于linux5.15.5的IMX 参考手册 ---21

基于linux5.15.5的IMX 参考手册 — 21 10.5.2高清多媒体接口&#xff08;HDMI&#xff09;和显示端口&#xff08;DP&#xff09;概述 10.5.2.1测试名称 •mxc_cec_test.out 10.5.2.1.1位置 /unit_tests/HDMI/ 10.5.2.1.2功能 验证HDMI CEC功能并向HDMI接收器发送断电命令。 1…...

Android Dalvik虚拟机 堆初始化流程

前言 上篇文章介绍了dalvik虚拟机启动流程&#xff0c;在dalvik虚拟机启动时调用了dvmGcStartup来启动堆。 本文介绍我们在日常开发使用Java时的堆创建流程。 Dalvik堆介绍 Dalvik虚拟机中&#xff0c;堆是由heap[0] Active堆和heap[1] Zygote堆两部分组成的。其中&#xff…...

0讲(补)——开发前必备基本常识

前言 专栏内容持续补充更新,目前正在进行优惠活动 目录 前言 一、函数的声明和定义 二、预编译 三、串口打印中的printf函数的使用...

JS学习笔记

1.WebAPIs简介导读Web APIs 和JS 基础关联性JS 基础阶段以及 Web APIs 阶段JS基础学习 ECMAScript 基础语法为后面作铺垫&#xff0c;Web APIs 是JS 的应用&#xff0c;大量使用JS基础语法做交互效果①JS 基础阶段我们学习的是ECMAScript 标准规定的基本语法要求同学们掌握JS 基…...

linux005之用户、组管理

linux用户管理简介&#xff1a; 任何使用linux系统的用户&#xff0c;都必须使用一个合法的账号和密码&#xff0c;账号和密码一般都是超级管理员创建&#xff0c;当然普通用户也可以创建用户&#xff0c;前提是必须拥有创建用户权限。 root是linux系统中默认创建的超级用户 创…...

列线图工具_Nomogram

定义 列线图是一种相对传统的分析方法&#xff0c;用于展示自变量和因变量的线性关系&#xff0c;及其特征的重要程度。 现在用SHAP&#xff0c;和机器学习库中的 Feature importance 工具可以实现类似甚至更好效果。不过很多传统的研究领域比较认这种方法。 列线图工具建立在…...

【C++】类和对象(一)

目录一、面向过程和面向对象初步认识二、类的引入三、类的定义四、类的访问限定符及封装4.1、访问限定符4.2、封装五、类的作用域六、类的实例化七、类对象的大小八、this指针8.1、this指针的引出8.2、this指针的特性8.3、C语言和C实现Stack的对比一、面向过程和面向对象初步认…...

Python获取搜索引擎结果

前言 想快速获取各个高校的博士招生网站&#xff0c;于是通过python先获取出有可能包含高校博士招生网站的URL&#xff0c;然后通过人为筛选得到了想要的招生网站&#xff08;注意&#xff0c;并非直接爬取&#xff0c;是间接获取的&#xff09;。 整理了一份网站名单&#x…...

2.4.8 PCIe——物理逻辑层——REFCLK

一、概述 pcie的参考时钟由板级输入&#xff0c;提供给IP内PHY层的PLL使用&#xff0c;由PLL产生core_clk和pipe_clk。 二、REFCLK产生方式 Serdes 所用时钟由 PHY 模块内的PLL生成&#xff0c;PLL的参考时钟可以由common clock&#xff08;外部背板提供&#xff09;、separ…...

树莓派4B arm64 搭建 docker+drone+gitea

树莓派4B arm64 搭建 dockerdronegitea 记录时间: 2023年02月10日 树莓派烧录 如何用树莓派搭建一台永久运行的个人服务器&#xff1f; https://mp.weixin.qq.com/s?__bizMzI5NjA0ODkwNA&mid2651847658&idx1&sn267a1257b43d4a76f2a081ed157b77f9&chksmf7b11…...

Java的JDBC编程

目录 1. 打开IDEA&#xff0c;新建Project 2. 引入依赖 &#xff08;1&#xff09;下载驱动包 &#xff08;2&#xff09;将驱动包导入Project 3. 编写代码 &#xff08;1&#xff09;创建数据源 &#xff08;2&#xff09;让代码和数据库服务器建立联系 &#xff08;3&…...

CSS:块格式化上下文(BFC)

块格式化上下文是块级盒子的布局过程发生的区域&#xff0c;也是浮动元素与其他元素交互的区域。 块格式化上下文(BFC)的创建 满足以下条件将创建块格式化上下文&#xff1a; 根元素&#xff08;&#xff09;浮动元素&#xff08;float 值不为 none&#xff09;绝对定位元素…...

paddle表情识别部署

表情识别模块1.环境部署1.1同样采用fastDeploy库1.2相关模型2.封装成静态库2.1参考[百度Paddle中PP-Mattingv2的部署并将之封装并调用一个C静态库](https://blog.csdn.net/weixin_43564060/article/details/128882099)2.2项目依赖添加2.3生成成功3.test3.1创建emotion_test项目…...

Python-第五天 Python函数

Python-第五天 Python函数一、函数介绍1. 什么事函数二、函数的定义1.函数的定义&#xff1a;2.案例三、函数的参数1.函数的传入参数2.案例升级四、函数的返回值1.什么是返回值2.返回值的语法3.None类型4.None类型的应用场景五、函数说明文档1.函数的说明文档2.在PyCharm中查看…...

【Python学习笔记】28.Python3 错误和异常

前言 作为 Python 初学者&#xff0c;在刚学习 Python 编程时&#xff0c;经常会看到一些报错信息&#xff0c;在前面我们没有提及&#xff0c;这章节我们会专门介绍。 Python3 错误和异常 Python 有两种错误很容易辨认&#xff1a;语法错误和异常。 Python assert&#xf…...

SQLServer 迁移到 MySQL 工具对比

我之所以会写这篇对比文章&#xff0c;是因为公司新产品研发真实经历过这个痛苦过程&#xff08;传统基于 SQL Server开发的C/S 产品转为 MySQL云产品&#xff09;。首次需要数据转换是测试环节&#xff0c;当时为了快速验证新研发云产品性能与结果准确性&#xff08;算法类&am…...

分析finebi5.x仪表板组件获取数据过程(数据是数据集或者sql的)

首先仪表板的公共连接类似:http://localhost:37799/webroot/decision/link/Bo6B 当我们访问这个连接时,会来到FineLinkAction的getShareReport方法。 public String getShareReport(HttpServletRequest req, HttpServletResponse res, @FinePathVariable("linkId"…...

设计模式--适配器模式 Adapter Pattern

设计模式--适配器模式 Adapter Pattern适配器模式 Adapter Pattern1.1 基本介绍1.2 工作原理类适配器模式对象适配器模式接口适配器模式小结适配器模式 Adapter Pattern 1.1 基本介绍 &#xff08;1&#xff09;适配器模式将某个类的接口转换成为客户端期望的另一个接口表示&…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

git: early EOF

macOS报错&#xff1a; Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...

ZYNQ学习记录FPGA(一)ZYNQ简介

一、知识准备 1.一些术语,缩写和概念&#xff1a; 1&#xff09;ZYNQ全称&#xff1a;ZYNQ7000 All Pgrammable SoC 2&#xff09;SoC:system on chips(片上系统)&#xff0c;对比集成电路的SoB&#xff08;system on board&#xff09; 3&#xff09;ARM&#xff1a;处理器…...