【Maven】
Maven
- Maven简介
- 仓库
- 坐标
- Maven项目构建
- 依赖管理
- 生命周期及插件
- 插件
- 模块拆分与开发
- 聚合
- 继承
- 属性
- 版本管理
- 资源配置
- 多环境开发配置
- 跳过测试
- 私服
Maven简介
Maven的本质时一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
POM(Project Object Model):项目对象模型

maven作用:
- 项目构建:提供标准的,跨平台的自动化项目构建方式
- 依赖管理:方便快捷的管理项目依赖的的资源(jar包),避免资源间的版本冲突问题
- 统一开发结构:提供标准的,统一的项目结构
仓库
仓库:用于存储资源,包含各种jar包
仓库分类:
- 本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
- 远程仓库:非本地电脑上的仓库,为本地仓库提供资料
- 中央仓库:Maven团队维护,存储所有资源的仓库
- 私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源
- 私服的作用:
- 保存具有版权的资源,包含购买或自主研发的jar
- 中央仓库的jar都是开源的,不能存储具有版权的资源
- 一定范围内共享资源,仅对内部开放,不对外共享

- 保存具有版权的资源,包含购买或自主研发的jar
坐标
坐标:Maven中的坐标用于描述仓库中资源的位置
坐标地址:https://repo1.maven.org/maven2/
仓库地址:https://mvnrepository.com/
坐标组成:
- groupId:定义当前Maven项目隶属组织名称
- aritfactId:定义当前Maven项目名称
- version:定义当前项目版本号
- packaging:定义改项目的打包方式
Maven坐标的作用:
使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交互由机器完成。
本地仓库位置:
默认位置:登录用户名所在目录下的.m2文件夹中
<localRepository>${user.home}/.m2/repository</localRepository>
自定义位置:
<localRepository>D:\maven\repository</localRepository>
默认仓库位置:
<repositories><repository><id>central</id><name>Central Repository</name><url>https://repo.maven.apache.org/maven2</url><layout>default</layout><snapshots><enabled>false</enabled></snapshots></repository>
</repositories>
在seting文件中配置阿里云镜像仓库
<mirrors><!--配置具体的仓库的下载镜像--><mirror><!-- 此镜像的唯一标识符,用来区分不同的mirror元素 --><id>nexus-aliyun</id><!-- 对哪种仓库进行镜像,简单说就是替代哪个仓库 --><mirrorOf>central</mirrorOf><!-- 镜像名称 --><name>Nexus aliyun</name><!-- 镜像URL --><url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror>
</mirrors>
Maven项目构建
Maven构建命令使用mvn开头,后面添加功能参数,可以一次执行多个命令,使用空格分隔。
| 命令 | 释义 |
|---|---|
| mvn complie | 编译 |
| mvn clean | 清理 |
| mvn test | 测试 |
| mvn package | 打包 |
| mvn install | 安装到本地仓库 |
1.项目编写成功后,执行mvn install命令

2.执行mvn test命令,先编译,后测试,保存测试结果


3.执行mvn package命令

先执行编译,测试后编译,再test,最后执行打包指令


4.执行mvn install命令,执行编译,测试,打包,最后将jar包安装到本地仓库

maven命令创建工程:
mvn archetype:generate-DgroupId={project-packaging} -DartifactId={project-name} -DarchetypeArtifactId=maven-archetype-quickstart-DinteractiveMode=false
创建java工程
mvn archetype:generate -DgroupId=com.itheima -DartifactId=java-project -
DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot -
DinteractiveMode=false
创建web工程
mvn archetype:generate -DgroupId=com.itheima -DartifactId=web-project -
DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -
DinteractiveMode=false
maven配置Tomcat7运行插件:
<build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>80</port> 端口<path>/</path> 路径</configuration></plugin></plugins>
</build>
添加maven运行配置,可以debug运行



依赖管理
依赖指当前项目运行所需的jar,一个项目可以设置多个依赖。
依赖配置:
<!-- 设置当前项目所依赖的所有jar-->
<dependencies><!— 设置具体的依赖--><dependency><!— 依赖所属群组id--><groupId>junit</groupId><!— 依赖所属项目id--><artifactId>junit</artifactId><!— 依赖版本号 --><version>4.12</version></dependency>
</dependencies>
依赖传递(相对概念):
- 直接依赖:在当前项目中通过依赖配置建立的依赖关系
- 间接依赖:被依赖的资源依赖其他资源,当前项目间接依赖其他资源

依赖传递冲突问题:
- 路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越低,优先级越高。
- 声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
- 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的


可选依赖:对外隐藏当前所依赖的资源,不透明,通过设置
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><optional>true</optional>
</dependency>
排除依赖:主动断开依赖的资源,被排除的资源无需指定版本,通过设置

<dependency><groupId>com.heima</groupId><artifactId>project03</artifactId><version>1.0.-SNAPSHOT</version><exclusions><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion></exclusions>
</dependency>
依赖范围: 依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围
作用范围:
- 主程序范围有效(main文件夹范围内)
- 测试程序范围有效(test文件夹范围内)
- 是否参与打包(package指令范围内)
| scope | 主程序 | 测试代码 | 打包 | 范例 |
|---|---|---|---|---|
| comile(默认) | Y | Y | Y | log4j |
| test | Y | junit | ||
| provided | Y | Y | servlet-api | |
| runtime | Y | jdbc |
依赖范围传递性
带有依赖范围的资源在进行传递时,作用范围将收到影响

生命周期及插件
maven构建生命周期描述的是一次构建过程经历了多少个事件。
maven对项目构建的生命周期划分为3套:
- clean:清理工作
- default:核心工作,例如编译,测试,打包,部署等
- site:产生报告,发布站点
clean生命周期
- pre-clean:执行一些需要再clean之前完成的工作
- clean:移除所有上次构建生成的文件
- post-clean:执行一些需要再clean之后立刻完成的工作
- default构建生命周期
default构建生命周期

site构建生命周期
- pre-site:执行一些需要在生成站点文档之前完成的工作
- site:生成项目的站点文档
- post-site:执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
- site-deploy:将生成的站点文档部署到特定的服务器上
插件
- 插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能
- 默认maven在各个生命周期上绑定有预设的功能
- 通过插件可以自定义其他功能
定义哪个生命周期执行哪个插件
<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> #对源码打包</goals><phase>generate-test-resources</phase> #插件执行时期</execution></executions></plugin></plugins>
</build>
模块拆分与开发
聚合
聚合:聚合用于快速构建maven工程,一次性构建多个项目/模块。

创建一个空模块,打包类型定义为pom
<packaging>pom</packaging>
定义当前模块进行构建时关联的其他模块名称
<modules><module>../ssm_controller</module><module>../ssm_service</module><module>../ssm_dao</module><module>../ssm_pojo</module>
</modules>

继承
通过继承可以实现在子工程中沿用父工程中的配置,避免子工程中依赖版本冲突。
在子工程中声明其父工程坐标与对应的位置。

1.父工程编写:
<!--1.在父工程中定义依赖管理 -->
<dependencyManagement><!-- 具体的依赖 --><dependencies><!--spring 环境--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><!--版本--><version>5.1.9.RELEASE</version></dependency><!--也可以添加自己的工程模块依赖--><!--...--><dependencies>
<dependencyManagement><!--插件管理类似--><build><pluginManagement><!--设置插件--><plugins><!--具体的插件配置--><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>80</port><path>/</path></configuration></plugin></plugins></pluginManagement></build>
2.在子工程中定义依赖关系,无需声明依赖版本,版本参照父工程中依赖的版本
<!--1.在子工程中声明其父工程坐标与其对应的位置 -->
<parent><groupId>com.itheima</groupId><artifactId>ssm</artifactId><version>1.0-SNAPSHOT</version><!-- 填写父工程的pom文件相对路径 --><relativePath>../ssm/pom.xml</relativePath>
</parent>
<!--版本 -->
<modelVersion>4.0.0</modelVersion>
<!--项目名称,打包方式 -->
<!--<groupId>com.itheima</groupId>与父版本保持一致 -->
<artifactId>ssm_pojo</artifactId>
<packaging>jar</packaging><!--2.在子工程中定义依赖关系,无需声明版本 -->
<dependencies><!--spring环境 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency>
</dependencies><build><!--设置插件--><plugins><!--具体的插件配置--><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId></plugin></plugins>
</build>
继承的资源

继承与聚合:
- 作用
- 聚合用于快速构建项目
- 继承用于快速配置
- 相同点
- 聚合与继承的pom.xml 文件打包方式均为pom,可以将两种关系制作到同一个pom文件中
- 聚合与继承均属于设计型模块,并无实际的模块内容
- 不同点
- 聚合是当前模块中配置关系,聚合可以感知到参与聚合的模块有哪些
- 继承是子模块中配置关系,父模块无法感知哪些子模块继承了自己
属性
自定义属性: 等同于定义变量,方便统一维护。
定义自定义属性:
<properties><spring.version>5.1.9.RELEASE</spring.version><junit.version>4.12</junit.version>
</properties>
调用:
<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version>
</dependency>
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version>
</dependency>
内置属性: 使用maven内置属性,快速配置
${basedir}
${version}
调用:
<groupId>com.itheima</groupId><artifactId>ssm</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><!--声明此处进行依赖管理--><dependencyManagement><!--具体的依赖--><dependencies><!--添加自己的工程模块依赖--><dependency><groupId>com.itheima</groupId><artifactId>ssm_pojo</artifactId><version>${version}</version></dependency></dependencies></dependencyManagement>
Setting属性: 使用Maven配置文件setting.xml中的标签属性,用于动态配置
调用格式:
${settings.localRepository}
Java系统属性: 读取Java系统属性
调用格式:
${user.home}
系统属性查询方式:mvn help:system


环境变量属性: 读取环境变量属性
调用格式:
${env.JAVA_HOME}
版本管理
- SNAPSHOT快照版本
- 项目开发过程中,为方便团队成员合作,解决模块间相互依赖和时时更新的问题,开发者堆每个模块进行构建的时候,输出的临时版本叫做快照版本(测试阶段版本)
- 快照版本会随着开发的进展不断更新
- RELEASE发布版本SNAPSHOT快照版本
- 项目开发到进入阶段里程碑后,向团队外部发布较为稳定的版本,这种版本所对应的构建文件是稳定的,即便进行后续的功能开发,也不会改变当前发布版本内容,这种版本为发布版本。
工程版本号约定
- <主版本>.<次版本>.<增量版本>.<里程碑版本>
- 主版本:表示项目重大架构的变更,如spring5相较于spring4的变更
- 次版本:表示有较大的功能增加和变化,或者全面系统地修复漏洞
- 增量版本:表示有重大漏洞的修复
- 里程碑版本:表明一个版本的里程碑(版本内部)。这样的版本同下一个正式版本相比,相对来说不是很稳定,有待更多的测试。
资源配置
定义资源文件引用pom属性,集中统一管理
1.pom.xml文件修改,设置文件路径
<!--1.定义变量-->
<properties><jdbc.url>jdbc:mysql://127.2.2.2:3306/ssm_db</jdbc.url>
</properties>
<build>
<!--2.配置资源文件对应的信息,支持使用属性动态设定路径,开启加载pom属性过滤功能--><!--配置资源文件对应的信息 ${project.basedir}项目基础路径--><resources><resource><directory>${project.basedir}/src/main/resources</directory><filtering>true</filtering></resource></resources><!--配置测试资源文件对应的信息--><testResources><testResource><directory>${project.basedir}/src/test/resources</directory><filtering>true</filtering></testResource></testResources>
</build>
2.资源文件修改,使用${属性名}引用pom属性
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=${jdbc.url}
jdbc.username=root
jdbc.password=itheima
多环境开发配置

1.定义多环境
<!--创建多环境--><profiles><!--定义具体的环境:生产环境--><profile><!--定义环境对应的唯一名称--><id>pro_env</id><!--定义环境中换用的属性值--><properties><jdbc.url>jdbc:mysql://127.1.1.1:3306/ssm_db</jdbc.url></properties><!--设置默认启动--><activation><activeByDefault>true</activeByDefault></activation></profile><!--定义具体的环境:开发环境--><profile><id>dep_env</id><properties><jdbc.url>jdbc:mysql://127.2.2.2:3306/ssm_db</jdbc.url></properties></profile></profiles>
2.使用多环境,配置打包使用哪个环境

跳过测试
跳过测试环节的应用场景:
- 整体模块功能未开发
- 模块中某个功能未开发完毕
- 单个功能更新调试导致其他功能失败
- 快速打包
跳过测试:
- 命令行:执行的指令生命周期必须包含测试环节
mvn 指令 –D skipTests
mvn install –D skipTests跳过一些测试
mvn clean install -DskipTests=MyTest1,MyTest2指定执行某些测试
mvn test -Dtest=MyTest1,MyTest2
-
idea界面跳过

-
pom.xml配置
<plugin><!--可省略--><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.22.1</version><configuration><skipTests>true</skipTests><!--设置跳过测试--><includes> <!--包含指定的测试用例 --><include>**/User*Test.java</include></includes><!--<excludes><!--排除测试用例 --><exclude>**/User*TestCase.java</exclude></excludes>--></configuration>
</plugin>
私服
Nexus是Sonatype公司的一款maven私服产品。
下载地址:https://help.sonatype.com/repomanager3/download
下载解压后目录:

在bin目录中输入:nexus /run nexus启动:

访问默认端口:8081,http://localhost:8081

仓库分类:
- 宿主仓库hosted:保存无法从中央仓库获取的资源,按需存放资源的仓库(以上线/开发中)
- 自主研发的资源
- 第三方非开源项目,比如oracle-jdbc
- 代理仓库proxy
- 代理远程仓库,通过nexus访问其他公共仓库,例如中央仓库,阿里云仓库
- 仓库组group
- 将若干个仓库组成一个群组(可以是宿主仓库,也可以是代理仓库),简化配置
- 仓库组不能保存资源,属于设计型仓库,便于取资源
进入页面,提示默认密码位置,之后修改密码

进入首页:

创建仓库:

选择类型:


添加到public群组中

上传组件


RELEASE版本SNAPSHOT版本,会做一个版本校验,需要统一

查看:

Idea环境中资源上传和下载:

setting.xml配置本地仓库访问私服的权限(下载地址)
<servers><server><id>heima-release</id><username>admin</username><password>admin</password></server><server><id>heima-snapshots</id><username>admin</username><password>admin</password></server>
</servers>
setting.xml配置本地仓库来源为私服
<mirrors><mirror><id>nexus-heima</id><mirrorOf>*</mirrorOf><url>http://localhost:8081/repository/maven-public/</url></mirror>
</mirrors>
配置当前项目访问私服上传资源的保存位置(pom.xml文件)
<distributionManagement><repository><id>heima-release</id><url>http://localhost:8081/repository/heima-release/</url></repository><snapshotRepository><id>heima-snapshots</id><url>http://localhost:8081/repository/heima-snapshots/</url></snapshotRepository>
</distributionManagement>
发布资源到私服命令
mvn deploy
相关文章:
【Maven】
MavenMaven简介仓库坐标Maven项目构建依赖管理生命周期及插件插件模块拆分与开发聚合继承属性版本管理资源配置多环境开发配置跳过测试私服Maven简介 Maven的本质时一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM) POM(Project Object Model)&a…...
[JAVA]继承
目录 1.继承的概念 2.继承的语法 3.父类成员访问 3.1子类中访问父类成员变量 3.2子类中访问父类成员方法 4.super关键字 5.子类构造方法 6.继承方式 7.final关键字和类的关系 面向对象思想中提出了继承的概念,专门用来进行共性抽取,实现代码复…...
Vue3 pinia持久化存储(组合式Api案例演示)
pinia-plugin-persist( pinia持久化插件) 本文采用的是 组合式Api的方式来做Pinia的持久化存储演示 如果对pinia的持久化还是不是很了解的👨🎓|👩🎓,可以看一下笔者的上一篇文章…...
8个你一看就觉得很棒的Vue开发技巧
1.路由参数解耦 通常在组件中使用路由参数,大多数人会做以下事情。 export default {methods: {getParamsId() {return this.$route.params.id}} }在组件中使用 $route 会导致与其相应路由的高度耦合,通过将其限制为某些 URL 来限制组件的灵活性。 正…...
vue3+ts 开发效率提升
1、vite pnpm项目初始化 pnpm: 比npm或yarn快10倍 pnpm与其他包管理器(如npm和Yarn)的不同之处在于它使用一种称为“硬链接”的独特安装方法。当你使用PNPM安装一个包时,它并不会将包的文件复制到每个项目的node_modules目录中&a…...
【数据结构与算法】队列和栈的相互实现以及循环队列
目录🌔一.用队列实现栈🌙1.题目描述🌙2.思路分析🌙3.代码实现⛈二.用栈实现队列☔1.题目描述☔2.思路分析☔3.代码实现🌈三.实现循环队列🌔一.用队列实现栈 🌙1.题目描述 我们先看一下题目链接…...
mysql连接不上问题解决
公司新搭内网测试环境,mysql远程登录问题解决 远程登录: 1 修改host, mysql> select user,host,plugin from user; ---------------------------------------------------- | user | host | plugin | ------------------------…...
利用nginx实现动静分离的负载均衡集群实战
前言 大家好,我是沐风晓月,今天我们利用nginx来作为负载,实现两台apache服务器的动静分离集群实战; 本文收录于沐风晓月的专栏《linux基本功-系统服务实战》,更多内容可以关注我的博客: https://blog.csd…...
与chatGPT神聊,引领你深入浅出系统调用
在操作系统的教学中,系统调用的作用不言而喻,但是,对系统调用常常是雾里看花,似乎明白,又难以真正的触及,即使在代码中调用了系统调用,比如调用fork()创建进程࿰…...
自学大数据第十天~Hbase
随着数据量的增多,数据的类型也不像原来那样都是结构化数据,还有非结构化数据; Hbase时google 的bigtable的开源实现, BigtableHbase文件存储系统GFSHDFS海量数据处理MRMR协同管理服务chubbyzookeeper虽然有了HDFS和MR,但是对于数据的实时处理是比较困难的,没有办法应对数据的…...
vue更高效的工具-vite
目录 1.webpack 2.vite是什么 3.使用vite创建项目 4.最后总结 🐼webpack 简单来说,Webpack是一个打包工具。 站在2018年的角度,成为一个优秀的前端工程师,除了要会写页面样式和动态效果之外,还需要会用主流的单页…...
HFish蜜罐的介绍和简单测试(一)
目录 0、什么是蜜罐 0.1、蜜罐的定义 0.2、蜜罐的优势 0.3、蜜罐与情报 1、HFish介绍 1.1、设计理念 1.2、HFish架构 1.3、HFish特点 1.4、常见蜜罐场景 2、快速部署 2.1、环境要求 2.2、联网环境,一键安装 2.3、安装效果 3、错误排查 3.1、管理端问题…...
2023面试题汇总二
一、CSS面试题 1. 清除浮动的方式有哪些? 为什么要清除浮动?因为浮动的盒子脱离标准流,如果父盒子没有设置高度的话,下面的盒子就会撑上来。 额外标签法(在最后一个浮动标签后,新加一个标签,给其设置cle…...
C# 支付宝接口在线收款退款
收款 在C#中使用支付宝在线支付功能,需要使用支付宝开放平台提供的SDK(软件开发工具包),通过SDK中提供的API(应用程序接口)实现在线支付功能。 以下是使用C#实现支付宝在线支付的大致步骤: 获…...
python例程:《企业编码生成系统》程序
目录《企业编码生成系统》程序使用说明主要代码演示源码及说明文档下载路径《企业编码生成系统》程序使用说明 在PyCharm中运行《企业编码生成系统》即可进入如图1所示的系统主界面。在该界面中可以选择要使用功能对应的菜单进行不同的操作。在选择功能菜单时,只需…...
基于EB工具的TC3xx_MCAL配置开发04_ADC模块软件触发Demo配置
目录 1.概述2. EB配置2.1 添加HwUnit2.2 AdcPrescale配置2.3 添加ADC通道2.4 添加Adc Group2.5 Adc Group配置2.5.1 AdcGroup->General2.5.2 AdcGroup->AdcNotification2.5.3 AdcGroup->AdcGroupDefinition2.5.4 AdcGroup->AdcResRegDefinition2.6 中断配置1.概述 …...
内存操作函数
前言 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言进阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>:介绍c语言中有关指针更深层的知识. 金句分享: ✨未来…...
免费搭建个人博客
免费搭建个人博客,并发布到公网 利用hexo搭建个人博客,通过gitee的pages发布到公网 1 前置准备 安装git、安装node.js(尽量选择长期支持的版本) node.js官网:https://nodejs.org/en/ git官网:https://git-scm.com/book/zh/v2 安装…...
【Vue全家桶】详解Vue Router(一)
【Vue全家桶】Vue Router详解(一) Vue系列文章目录: 内容参考链接Vue(一)【Vue全家桶】邂逅Vue、Vue的多种引入方式Vue(二)【Vue全家桶】声明式编程、MVVMVue(三)【Vue…...
9大 HIVE SQL 最频繁被问到的面试题
SQL是用于数据分析和数据处理的最重要的编程语言之一,因此与数据科学相关的工作(例如数据分析师、数据科学家和数据工程师)在面试时总会问到关于 SQL 的问题。 SQL面试问题旨在评估应聘者的技术和解决问题的能力。因此对于应聘者来说&#x…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
