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

Gradle7.4安装与基本使用

文章目录

    • 一.前言
    • 二.下载Gradle
    • 三.Gradle镜像源-全局级配置
    • 四.配置Gradle wrapper-项目级配置
    • 五.Gradle对测试的支持
    • 五.生命周期
      • 5.1 settings文件
    • 六.Gradle任务入门
      • 6.1 任务行为
      • 6.2 任务依赖方式
    • 七. Dependencies依赖引入
      • 7.1 依赖冲突及解决方案
    • 八.Gradle整合多模块SpringBoot
    • 九. Gradle整合微服务SpringCloud


一.前言

gradle有突出的版本不兼容问题.因此要注意SpringBoot对Gradle的要求,以及IDEA对Gradle的要求.
在IDEA的plugins/lib/gradle中规定了gradle的最大版本号. 在2022.2.1中是6.7 在2022.3.2中是7.4.
其余自行查看该位置的版本控制.不过idea规定的版本号可以更改.
在这里插入图片描述
查看SpringBoot与Gradle的兼容性


二.下载Gradle

Gradle官网地址

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下载完整版解压后
在这里插入图片描述
在这里插入图片描述
系统变量配置Gradle仓库
键必须为GRADLE_USER_HOME

在这里插入图片描述
系统变量配置Gradle全局系统变量 gradle的bin目录

在这里插入图片描述
验证 gradle -v
在这里插入图片描述


三.Gradle镜像源-全局级配置

Gradle使用maven定位镜像地址参考: 阿里云云效Maven

全局配置 在Gradle的init.d目录下新建gradle为后缀的文件.
在这里插入图片描述

allprojects {repositories {maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }maven { name "google" ; url 'https://maven.aliyun.com/repository/google' }mavenCentral()}buildscript { repositories { maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }maven { name "gradle-plugin" ; url 'https://maven.aliyun.com/repository/gradle-plugin' }maven { name "spring-plugin" ; url 'https://maven.aliyun.com/repository/spring-plugin' }maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }}}
}

四.配置Gradle wrapper-项目级配置

在这里插入图片描述

解决项目在多台电脑开发时,Gradle环境不一致,idea不兼容等问题.

Gradle指令调用本地的gradle脚本.而在项目中应当运行gradlew才是调用项目中的wrapper脚本

在这里插入图片描述
在这里插入图片描述

gradlew wrapper --gradle-version=6.7

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
当执行

gradlew.bat classes
gradlew.bat test
gradlew.bat build

等,会下载gradle相关内容

五.Gradle对测试的支持

在这里插入图片描述

test{useJUnitPlatform() // 支持对junit5测试
}

五.生命周期

Gradle项目的生命周期分为三大阶段: Initialization ->Configuration -> Execution.每个阶段都有自己的职责,具体如下图所示:
在这里插入图片描述
Initialization 只执行一次初始化脚本.
Configuration 先执行加载父脚本,再是子脚本,再是孙子脚本
在这里插入图片描述
在这里插入图片描述

5.1 settings文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六.Gradle任务入门

6.1 任务行为

def map = new HashMap<String,Object>();
//action属性可以设置为闭包,设置task自身的行为
map.put("action",{println "task one.."})task (map,"task1"){// 任务的配置段:在配置阶段执行println "最先执行"// 任务的行为:在执行阶段执行,doFirst会在doLast执行之前执行doFirst {println "task1 doFirst"}doLast {println "task1 doLast"}
}task.doFirst {println "task1 doFirst outer"
}task.doLast {println "task1 doLast outer"
}

在这里插入图片描述

在这里插入图片描述

6.2 任务依赖方式

在这里插入图片描述
在这里插入图片描述

七. Dependencies依赖引入

在这里插入图片描述
在这里插入图片描述

除非涉及到多模块依赖,为了避免重复依赖,咱们会使用api,其它情况我们优先选择implementation,拥有大量的api 依赖项会显著增加构建时间。

7.1 依赖冲突及解决方案

依赖冲突是指 “在编译过程中, 如果存在某个依赖的多个版本, 构建系统应该选择哪个进行构建的问题”,如下所示:
在这里插入图片描述
A、B、C 都是本地子项目 module,log4j 是远程依赖。
编译时: B 用 1.4.2 版本的 log4j,C 用 2.2.4 版本的 log4j,B 和 C 之间没有冲突
打包时: 只能有一个版本的代码最终打包进最终的A对应的jar |war包,对于 Gradle 来说这里就有冲突了

默认下,Gradle 会使用最新版本的 jar 包【考虑到新版本的 jar 包一般都是向下兼容的】,实际开发中,还是建议使用官方自带的这种解决方案。当然除此之外,Gradle 也为我们提供了一系列的解决依赖冲突的方法: exclude 移除一个依赖,不允许依赖传递,强制使用某个版本。
● Exclude 排除某个依赖

dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1' implementation('org.hibernate:hibernate-core:3.6.3.Final'){
//排除某一个库(slf4j)依赖:如下三种写法都行
exclude group: 'org.slf4j' exclude module: 'slf4j-api'
exclude group: 'org.slf4j',module: 'slf4j-api'
}
//排除之后,使用手动的引入即可。implementation 'org.slf4j:slf4j-api:1.4.0'
}

● 不允许依赖传递 在添加依赖项时,如果设置 transitive 为false,表示关闭依赖传递。即内部的所有依赖将不会添加到编译和运行时的类路径。

dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1' implementation('org.hibernate:hibernate-core:3.6.3.Final'){
//不允许依赖传递,一般不用
transitive(false)
}
//排除之后,使用手动的引入即可implementation 'org.slf4j:slf4j-api:1.4.0'
}

● 强制使用某个版本

dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1' implementation('org.hibernate:hibernate-core:3.6.3.Final')
//强制使用某个版本!!【官方建议使用这种方式】
implementation('org.slf4j:slf4j-api:1.4.0!!')
//这种效果和上面那种一样,强制指定某个版本implementation('org.slf4j:slf4j-api:1.4.0'){
version{
strictly("1.4.0")
}
}
}

八.Gradle整合多模块SpringBoot

SpringBoot官网整合说明
在这里插入图片描述

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

在这里插入图片描述

在这里插入图片描述

模块聚合./settings.gradle
在这里插入图片描述

新建.gradle后缀的文件做版本管理
在这里插入图片描述

config.gradle

ext {lombokVerison = '1.18.24'mybatisPlusVersion = '3.5.2'druidVersion = '1.2.8'mysqlVersion = '8.0.32'commonsVersion = '3.12.0'
}

./build.gradle抽取公共配置, 编码,环境,镜像源

// 加载构建期需要的插件
buildscript {repositories {maven { name "Alibaba"; url 'https://maven.aliyun.com/repository/public' }maven { name "google"; url 'https://maven.aliyun.com/repository/google' }maven { name "gradle-plugin"; url 'https://maven.aliyun.com/repository/gradle-plugin' }maven { name "spring-plugin"; url 'https://maven.aliyun.com/repository/spring-plugin' }maven { name "M2"; url 'https://plugins.gradle.org/m2/' }mavenCentral()}// 维护插件版本dependencies {classpath('org.springframework.boot:spring-boot-gradle-plugin:2.6.3')}
}
// 导入插件
plugins {id 'java-library'
}group 'com.vector'
version '1.0-SNAPSHOT'// 读取gradle版本配置
apply from: 'config.gradle'// 对所有子模块做统一管理
subprojects {//添加插件 目前Gradle版本不支持在allprojects下声明plugins,使用的是旧的写法apply plugin: 'java-library'apply plugin: 'org.springframework.boot' //维护springboot版本号,不单独使用,和下面两个插件一起用apply plugin: 'io.spring.dependency-management'// 相当于<dependencyManagement>版本管理//基本JDK配置sourceCompatibility = 1.8sourceCompatibility = 1.8targetCompatibility = 1.8compileJava.options.encoding "UTF-8"compileTestJava.options.encoding "UTF-8"tasks.withType(JavaCompile).configureEach {options.encoding = "UTF-8"}// SpringBoot Plugin生效的非常关键的设置// 主启动类位置bootJar {mainClass.set('org.vector.Main')}//依赖的配置:设置通用的依赖dependencies {testImplementation 'org.junit.jupiter:junit-jupiter-api'testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'compileOnly group: 'org.projectlombok', name: 'lombok', version: lombokVerison}test {useJUnitPlatform()}
}project("module01") {apply plugin: 'java-library'//支持apidependencies {compileOnly group: 'org.projectlombok', name: 'lombok', version: lombokVerison}
}
project("module02") {apply plugin: 'java-library'//支持apidependencies {// implementation不会进行依赖传递. api可以进行依赖传递api project(':module01')// mp持久化框架implementation group: 'com.baomidou', name: 'mybatis-plus-boot-starter', version: mybatisPlusVersion// druid连接池implementation group: 'com.alibaba', name: 'druid-spring-boot-starter', version: druidVersion// mysql数据库implementation group: 'mysql', name: 'mysql-connector-java', version: mysqlVersion}
}project("module03") {dependencies {// 不需要在继续依赖传递implementation project(':module02')// spring-boot-starter-webimplementation 'org.springframework.boot:spring-boot-starter-web'//spring-boot-starter-testtestImplementation 'org.springframework.boot:spring-boot-starter-test'// spring-boot-starter-aopimplementation 'org.springframework.boot:spring-boot-starter-aop'//spring-boot-starter-data-redisimplementation 'org.springframework.boot:spring-boot-starter-data-redis'// commons工具类implementation group: 'org.apache.commons', name: 'commons-lang3', version: commonsVersion}
}

在这里插入图片描述
那么可以自行探寻更优雅的写法.

九. Gradle整合微服务SpringCloud

项目结构

在这里插入图片描述
创建version.gradle

ext {version = ["lombokVerison"     : "1.18.24","mybatisPlusVersion": "3.5.2","druidVersion"      : "1.2.8","mysqlVersion"      : "8.0.32","commonsVersion"    : "3.12.0"]// 公共依赖dependencies = ["lombok"      : "org.projectlombok:lombok:${version.lombokVerison}","druid"       : "com.alibaba:druid-spring-boot-starter:${version.druidVersion}","mysql"       : "mysql:mysql-connector-java:${version.mysqlVersion}","common-lang3": "org.apache.commons:commons-lang3:${version.commonsVersion}","mybatisPlus" : "com.baomidou:mybatis-plus-boot-starter:${version.mybatisPlusVersion}"]}

./build.gradle

description '微服务父工程'//构建Gradle脚本自身需要的资源,可以声明的资源包括依赖项、第三方插件、maven仓库地址等。
buildscript {ext {springBootVersion = '2.6.3'springCloudversion = '2021.0.1'springCloudAlibabaVersion = '2021.1'springBootGradlePlugin = '2.6.3'}repositories {maven { name "Alibaba"; url 'https://maven.aliyun.com/repository/public' }maven { name "google"; url 'https://maven.aliyun.com/repository/google' }maven { name "gradle-plugin"; url 'https://maven.aliyun.com/repository/gradle-plugin' }maven { name "spring-plugin"; url 'https://maven.aliyun.com/repository/spring-plugin' }maven { name "M2"; url 'https://plugins.gradle.org/m2/' }mavenCentral()}// 维护插件版本dependencies {classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootGradlePlugin}")}
}group 'com.vector'
version '1.0-SNAPSHOT'// 读取gradle版本配置
apply from: 'version.gradle'// 对所有子模块做统一管理
subprojects {//添加插件 目前Gradle版本不支持在allprojects下声明plugins,使用的是旧的写法apply plugin: 'java-library'apply plugin: 'org.springframework.boot' //维护springboot版本号,不单独使用,和下面两个插件一起用apply plugin: 'io.spring.dependency-management'// 相当于<dependencyManagement>版本管理// 将配置信息加载进声明中.版本控制dependencyManagement{dependencies {for(depJar in rootProject.ext.dependencies){dependency depJar.value}}imports {// spring-cloud-dependenciesmavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudversion}"// spring-cloud-alibaba-dependenciesmavenBom "com.alibaba.cloud:spring-cloud-alibaba-dependencies:${springCloudAlibabaVersion}"}}//依赖的配置:设置通用的依赖dependencies {testImplementation 'org.junit.jupiter:junit-jupiter-api'testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'// spring-boot-starterimplementation 'org.springframework.boot:spring-boot-starter'// spring-cloud-starter-alibaba-nacos-discoveryimplementation 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery'// spring-cloud-starter-alibaba-nacos-configimplementation 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config'// spring-cloud-alibaba-sentinel-gatewayimplementation 'com.alibaba.cloud:spring-cloud-alibaba-sentinel-gateway'}//基本JDK配置sourceCompatibility = 1.8sourceCompatibility = 1.8targetCompatibility = 1.8compileJava.options.encoding "UTF-8"compileTestJava.options.encoding "UTF-8"tasks.withType(JavaCompile).configureEach {options.encoding = "UTF-8"}test {useJUnitPlatform()}
}project("module01") {description ("微服务模块1")apply plugin: 'java-library'//支持apidependencies {//lombokapi "org.projectlombok:lombok"api "mysql:mysql-connector-java"api "org.apache.commons:commons-lang3"}
}
project("module02") {description ("微服务模块2")apply plugin: 'java-library'//支持apidependencies {// mp持久化框架implementation 'com.baomidou:mybatis-plus-boot-starter'// druid-spring-boot-starterimplementation 'com.alibaba:druid-spring-boot-starter'// mysql数据库implementation 'mysql:mysql-connector-java'}
}project("module03") {description ("微服务模块3")dependencies {// spring-boot-starter-webimplementation 'org.springframework.boot:spring-boot-starter-web'//spring-boot-starter-testtestImplementation 'org.springframework.boot:spring-boot-starter-test'// spring-boot-starter-aopimplementation 'org.springframework.boot:spring-boot-starter-aop'//spring-boot-starter-data-redisimplementation 'org.springframework.boot:spring-boot-starter-data-redis'// commons工具类implementation 'org.apache.commons:commons-lang3'}
}

相关文章:

Gradle7.4安装与基本使用

文章目录一.前言二.下载Gradle三.Gradle镜像源-全局级配置四.配置Gradle wrapper-项目级配置五.Gradle对测试的支持五.生命周期5.1 settings文件六.Gradle任务入门6.1 任务行为6.2 任务依赖方式七. Dependencies依赖引入7.1 依赖冲突及解决方案八.Gradle整合多模块SpringBoot九…...

[系统安全] 虚拟化安全之虚拟化概述

本文为笔者从零基础学习系统安全相关内容的笔记,如果您对系统安全、逆向分析等内容感兴趣或者想要了解一些内容,欢迎关注。本系列文章将会随着笔者在未来三年的读研过程中持续更新,由于笔者现阶段还处于初学阶段,不可避免参照复现各类书籍内容,如书籍作者认为侵权请告知,…...

如何从零开始系统的学习项目管理?

经常会有人问&#xff0c;项目管理到底应该学习一些什么&#xff1f;学习考证之后能得到什么价值&#xff1f; 以下我就总结一下内容 一&#xff0c;学习项目管理有用吗&#xff1f; 有效的项目管理带来的益处大致包括以下几个方面&#xff1a;更有效达成业务目标、满足相关…...

面试题-----

面试题---- 一.HTML 1.常用哪些浏览器进行测试&#xff0c;对应有哪些内核&#xff1f; ①IE------------------->Trident ②Chrome---------->以前是Webkit现在是Blink ③Firefox------------>Gecko ④Safari-------------->Webkit ⑤Opera--------------&…...

线材-电子线载流能力

今天来讲的是关于电子线的一个小知识&#xff0c;可能只做板子的工程师遇到此方面的问题会比较少&#xff0c;做整机的工程师则必然会遇到此方面问题&#xff0c;那就是线材问题。 下面主要说下电子线的过电流能力。&#xff08;文末有工具下载&#xff09;电子线&#xff08;h…...

单变量回归问题

单变量回归问题 对于某房价问题&#xff0c;x为房屋大小&#xff0c;h即为预估房价&#xff0c;模型公式为&#xff1a; hθ(x)θ0θ1xh_{\theta}(x)\theta_{0}\theta_{1}x hθ​(x)θ0​θ1​x 要利用训练集拟合该公式&#xff08;主要是计算θ0、θ1\theta_{0}、\theta_{1}θ…...

ubuntu/linux系统知识(36)linux网卡命名规则

文章目录背景命名规范系统默认命名规则优势背景 很久以前Linux 操作系统的网卡设备的传统命名方式是 eth0、eth1、eth2等&#xff0c;属于biosdevname 命名规范。 服务器通常有多块网卡&#xff0c;有板载集成的&#xff0c;同时也有插在PCIe插槽的。Linux系统的命名原来是et…...

java的一些冷知识

接口并没有继承Object类首先接口是一种特殊的类&#xff0c;理由就是将其编译后是一个class文件大家都知道java类都继承自Object&#xff0c;但是接口其实是并没有继承Object类的 可以自己写代码测试: 获取接口类的class对象后遍历它的methods&#xff0c;可以发现是不存在Obje…...

java代理模式

代理模式 为什么要学习代理模式&#xff1f;因为这是SpringAOP的底层&#xff01; 【SpringAOP和SpingMVC}】 代理模式的分类&#xff1a; 静态代理 动态代理 代理就像这里的中介&#xff0c;帮助你去做向房东租房&#xff0c;你不能直接解出房东&#xff0c;而房东和中介…...

JUC包:CountDownLatch源码+实例讲解

1 缘起 有一次听到同事谈及AQS时&#xff0c;我有很多点懵&#xff0c; 只知道入队和出队&#xff0c;CLH&#xff08;Craig&#xff0c;Landin and Hagersten&#xff09;锁&#xff0c;并不了解AQS的应用&#xff0c; 同时结合之前遇到的多线程等待应用场景&#xff0c;发现…...

Log4j2基本使用

文章目录1. Log4j2入门2. Log4j2配置3. Log4j2异步日志4. Log4j2的性能Apache Log4j 2是对Log4j的升级版&#xff0c;参考了logback的一些优秀的设计&#xff0c;并且修复了一些问题&#xff0c;因此带 来了一些重大的提升&#xff0c;主要有&#xff1a; 异常处理&#xff0c…...

A2L在CAN FD总线的使用

文章目录 前言CAN时间参数BTL CyclesTime Quantum时间份额SWJ同步跳转宽度波特率计算采样点计算CAN FD的第二采样点SSP推荐配置A2L配置总结前言 A2L作为XCP标定协议的载体,包括了总线信息的定义。本文介绍如何将基于CAN总线的A2L扩展为支持CAN-FD的A2L CAN时间参数 在介绍配…...

Android JetPack之启动优化StartUp初始化组件的详解和使用

一、背景 先看一下Android系统架构图 在Android设备中&#xff0c;设备先通电&#xff08;PowerManager&#xff09;&#xff0c;然后加载内核层&#xff0c;内核走完&#xff0c;开始检查硬件&#xff0c;以及为硬件提供的公开接口&#xff0c;然后进入到库的加载。库挂载后开…...

[11]云计算|简答题|案例分析|云交付|云部署|负载均衡器|时间戳

升级学校云系统我们学校要根据目前学生互联网在线学习、教师教学资源电子化、教学评价过程化精细化的需求&#xff0c;计划升级为云教学系统。请同学们根据学校发展实际考虑云交付模型包含哪些&#xff1f;云部署采用什么模型最合适&#xff1f;请具体说明。9月3日买电脑还是租…...

C++11/C++14:lambda表达式

概念 lambda表达式&#xff1a;是一种表达式&#xff0c;是源代码的组成部分闭包&#xff1a;是lambda表达式创建的运行期对象&#xff0c;根据不同的捕获模式&#xff0c;闭包会持有数据的副本或引用闭包类&#xff1a;用于实例化闭包的类&#xff0c;每个lambda表达式都会触…...

算法课堂-分治算法

分治算法 把一任务分成几部分&#xff08;通常是两部分&#xff09;来完成&#xff08;或只完成一部分&#xff09;&#xff0c;从而实现整个任务的完成 或者你可以把递归理解为分治算法的一部分 因为递归就是把问题分解来解决问题 例子 称假币 最笨的方法&#xff1a;两两称…...

操作系统权限提升(十六)之绕过UAC提权-CVE-2019-1388 UAC提权

系列文章 操作系统权限提升(十二)之绕过UAC提权-Windows UAC概述 操作系统权限提升(十三)之绕过UAC提权-MSF和CS绕过UAC提权 操作系统权限提升(十四)之绕过UAC提权-基于白名单AutoElevate绕过UAC提权 操作系统权限提升(十五)之绕过UAC提权-基于白名单DLL劫持绕过UAC提权 注&a…...

实例9:四足机器人运动学正解平面RR单腿可视化

实例9&#xff1a;四足机器人正向运动学单腿可视化 实验目的 通过动手实践&#xff0c;搭建mini pupper四足机器人的腿部&#xff0c;掌握机器人单腿结构。通过理论学习&#xff0c;熟悉几何法、旋转矩阵法在运动学正解&#xff08;FK&#xff09;中的用处。通过编程实践&…...

堆的基本存储

一、概念及其介绍堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。堆满足下列性质&#xff1a;堆中某个节点的值总是不大于或不小于其父节点的值。堆总是一棵完全二叉树。二、适用说明堆是利用完全二叉树的结构来维护一组数…...

如何获取物体立体信息通过一个相机

大家都知道的3D 技术是通过双眼视觉差异 得到的 但是3D的深度并没有那么强 为什么眼睛看到的就那么强 这无法让我们相信这个视觉差理论是和人眼睛立体感是一个原理 这个如今3D 电影都在用的技术 是和真正的人眼立体感 不一样的 或者说是有瑕疵的 分析一下现在的立体感技术 是通…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

Ubuntu系统多网卡多相机IP设置方法

目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机&#xff0c;交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息&#xff0c;系统版本&#xff1a;Ubuntu22.04.5 LTS&#xff1b;内核版本…...