使用gitea发布软件包
1、新建hello工程
(1)HelloApplication.java
package cn.ac.trimps.sv;import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class HelloApplication implements CommandLineRunner {public static void main(String[] args) {SpringApplication.run(HelloApplication.class, args);}@Overridepublic void run(String... arg0) throws Exception {}}
(2)EnableHello.java
package cn.ac.trimps.sv.config;import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;import org.springframework.context.annotation.Import;@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@Documented
@Import({HelloConfig.class})
public @interface EnableHello {}
(3)HelloConfig.java
package cn.ac.trimps.sv.config;import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;@Configuration
@ComponentScan("cn.ac.trimps.sv.**")
public class HelloConfig {}
(4)HelloController.java
package cn.ac.trimps.sv.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;import cn.ac.trimps.sv.service.HelloService;@RestController
@RequestMapping("hello")
public class HelloController {@AutowiredHelloService helloService;@RequestMapping(value = "", method = RequestMethod.GET)public String helloWorld() {return helloService.helloWorld();}}
(5)HelloService.java
package cn.ac.trimps.sv.service;import org.springframework.stereotype.Service;import cn.hutool.core.util.StrUtil;
import lombok.extern.slf4j.Slf4j;@Slf4j
@Service
public class HelloService {public String helloWorld() {String str = StrUtil.format("{} {}.", "hello", "world");log.info("{}", str);return str;}}
(6)application.properties
logging.config=classpath:logback-plus.xmlserver.port=1400
(7)logback-plus.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration><include resource="org/springframework/boot/logging/logback/defaults.xml" /><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} - %msg %n</pattern><charset>UTF-8</charset></encoder><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter></appender><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>/home/logs/hello/stdout.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- daily rollover 保存历史记录到这个文件夹一日起为后缀 --><fileNamePattern>/home/logs/hello/stdout.log.%d{yyyy-MM-dd}-%i.log</fileNamePattern><!-- keep 30 days' worth of history --><maxHistory>30</maxHistory><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} - %msg %n</pattern><charset>UTF-8</charset> <!-- 此处设置字符集 --></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>INFO</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>/home/logs/hello/stderr.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- daily rollover 保存历史记录到这个文件夹一日起为后缀 --><fileNamePattern>/home/logs/hello/stderr.log.%d{yyyy-MM-dd}-%i.log</fileNamePattern><!-- keep 30 days' worth of history --><maxHistory>30</maxHistory><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} - %msg %n</pattern><charset>UTF-8</charset> <!-- 此处设置字符集 --></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><root level="INFO"><appender-ref ref="CONSOLE"></appender-ref><appender-ref ref="FILE"></appender-ref><appender-ref ref="FILE_ERROR"></appender-ref></root>
</configuration>
(8)build.gradle
plugins {id 'org.springframework.boot' version '2.7.18'id 'io.spring.dependency-management' version '1.0.15.RELEASE'id 'java'id 'eclipse'id 'maven-publish'
}group = 'cn.ac.trimps.sv'
version = '0.0.1'
sourceCompatibility = 1.8repositories {maven {url 'https://maven.aliyun.com/repository/public'}mavenCentral()
}jar {// 移除分类器(默认是 'plain')archiveClassifier = ''
}bootJar {// 自定义文件名称archiveFileName = "${project.name}-${project.version}.jar"launchScript()
}publishing {publications {mavenJava(MavenPublication) {// 发布普通Jarfrom components.java}}repositories {maven {name = 'Gitea'url = uri('http://127.0.0.1:3004/api/packages/huangwending/maven')credentials(HttpHeaderCredentials) {// 令牌名称name = 'Authorization'// 令牌value = 'token 033b2cfce7541387c1e272be45275cd926dc922c'}authentication {header(HttpHeaderAuthentication)}}}
}dependencies {implementation 'org.springframework.boot:spring-boot-starter-web'implementation 'cn.hutool:hutool-all:5.8.37'compileOnly 'org.projectlombok:lombok'developmentOnly 'org.springframework.boot:spring-boot-devtools'annotationProcessor 'org.projectlombok:lombok'testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
2、发布hello工程jar包至本地gitea仓库
命令:gradle clean publishAllPublicationsToGiteaRepository --info
PS G:\workspace\study\hello> gradle clean publishAllPublicationsToGiteaRepository --info
Initialized native services in: E:\.gradle-6.8.3\native
The client will now receive all logging from the daemon (pid: 22512). The daemon log file: E:\.gradle-6.8.3\daemon\6.8.3\daemon-22512.out.log
Starting 30th build in daemon [uptime: 3 hrs 5 mins 0.129 secs, performance: 99%, GC rate: 0.00/s, heap usage: 8% of 341.5 MiB, non-heap usage: 31% of 256 MiB]
Using 8 worker leases.
Watching the file system is disabled
Starting Build
Settings evaluated using settings file 'G:\workspace\study\hello\settings.gradle'.
Projects loaded. Root project using build file 'G:\workspace\study\hello\build.gradle'.
Included projects: [root project 'hello']> Configure project :
Evaluating root project 'hello' using build file 'G:\workspace\study\hello\build.gradle'.
Compiling build file 'G:\workspace\study\hello\build.gradle' using SubsetScriptTransformer.
Applying dependency management to configuration 'bootArchives' in project 'hello'
Applying dependency management to configuration 'archives' in project 'hello'
Applying dependency management to configuration 'default' in project 'hello'
Applying dependency management to configuration 'compile' in project 'hello'
Applying dependency management to configuration 'implementation' in project 'hello'
Applying dependency management to configuration 'runtime' in project 'hello'
Applying dependency management to configuration 'compileOnly' in project 'hello'
Applying dependency management to configuration 'compileClasspath' in project 'hello'
Applying dependency management to configuration 'annotationProcessor' in project 'hello'
Applying dependency management to configuration 'runtimeOnly' in project 'hello'
Applying dependency management to configuration 'runtimeClasspath' in project 'hello'
Applying dependency management to configuration 'testCompile' in project 'hello'
Applying dependency management to configuration 'testImplementation' in project 'hello'
Applying dependency management to configuration 'testRuntime' in project 'hello'
Applying dependency management to configuration 'testCompileOnly' in project 'hello'
Applying dependency management to configuration 'testCompileClasspath' in project 'hello'
Applying dependency management to configuration 'testAnnotationProcessor' in project 'hello'
Applying dependency management to configuration 'testRuntimeOnly' in project 'hello'
Applying dependency management to configuration 'testRuntimeClasspath' in project 'hello'
Applying dependency management to configuration 'apiElements' in project 'hello'
Applying dependency management to configuration 'runtimeElements' in project 'hello'
Applying dependency management to configuration 'developmentOnly' in project 'hello'
Applying dependency management to configuration 'productionRuntimeClasspath' in project 'hello'
Compiling build file 'G:\workspace\study\hello\build.gradle' using BuildScriptTransformer.
All projects evaluated.
Selected primary task 'clean' from project :
Selected primary task 'publishAllPublicationsToGiteaRepository' from project :
Tasks to be executed: [task ':clean', task ':compileJava', task ':processResources', task ':classes', task ':jar', task ':generateMetadataFileForMavenJavaPublication', task ':generatePomFileForMavenJavaPublication', task ':publishMavenJavaPublicationToGiteaRepository', task ':publishAllPublicationsToGiteaRepository']
Tasks that were excluded: []
:clean (Thread[Execution worker for ':',5,main]) started.> Task :clean UP-TO-DATE
Caching disabled for task ':clean' because:Build cache is disabled
Task ':clean' is not up-to-date because:Task has not declared any outputs despite executing actions.
:clean (Thread[Execution worker for ':',5,main]) completed. Took 0.022 secs.
:compileJava (Thread[Execution worker for ':',5,main]) started.> Task :compileJava
Resolving global dependency management for project 'hello'
Excluding []
Excluding []
Caching disabled for task ':compileJava' because:Build cache is disabled
Task ':compileJava' is not up-to-date because:No history is available.
The input changes require a full rebuild for incremental task ':compileJava'.
Invalidating in-memory cache of G:\workspace\study\hello\.gradle\6.8.3\javaCompile\classAnalysis.bin
Invalidating in-memory cache of G:\workspace\study\hello\.gradle\6.8.3\javaCompile\jarAnalysis.bin
Invalidating in-memory cache of G:\workspace\study\hello\.gradle\6.8.3\javaCompile\taskHistory.bin
Full recompilation is required because no incremental change information is available. This is usually caused by clean builds or changing compiler arguments.
Compiling with JDK Java compiler API.
Created classpath snapshot for incremental compilation in 0.066 secs. 1 duplicate classes found in classpath (see all with --debug).
:compileJava (Thread[Execution worker for ':',5,main]) completed. Took 4.609 secs.
:processResources (Thread[Execution worker for ':',5,main]) started.> Task :processResources
Caching disabled for task ':processResources' because:Build cache is disabled
Task ':processResources' is not up-to-date because:No history is available.
:processResources (Thread[Execution worker for ':',5,main]) completed. Took 0.108 secs.
:classes (Thread[Execution worker for ':',5,main]) started.> Task :classes
Skipping task ':classes' as it has no actions.
:classes (Thread[Execution worker for ':',5,main]) completed. Took 0.0 secs.
:jar (Thread[Execution worker for ':',5,main]) started.> Task :jar
Caching disabled for task ':jar' because:Build cache is disabled
Task ':jar' is not up-to-date because:No history is available.
:jar (Thread[Execution worker for ':',5,main]) completed. Took 0.127 secs.
:generateMetadataFileForMavenJavaPublication (Thread[Execution worker for ':',5,main]) started.> Task :generateMetadataFileForMavenJavaPublication
Caching disabled for task ':generateMetadataFileForMavenJavaPublication' because:Build cache is disabled
Task ':generateMetadataFileForMavenJavaPublication' is not up-to-date because:Task.upToDateWhen is false.
:generateMetadataFileForMavenJavaPublication (Thread[Execution worker for ':',5,main]) completed. Took 0.116 secs.
:generatePomFileForMavenJavaPublication (Thread[Execution worker for ':',5,main]) started.> Task :generatePomFileForMavenJavaPublication
Caching disabled for task ':generatePomFileForMavenJavaPublication' because:Build cache is disabled
Task ':generatePomFileForMavenJavaPublication' is not up-to-date because:Task.upToDateWhen is false.
:generatePomFileForMavenJavaPublication (Thread[Execution worker for ':',5,main]) completed. Took 0.358 secs.
:publishMavenJavaPublicationToGiteaRepository (Thread[Execution worker for ':',5,main]) started.> Task :publishMavenJavaPublicationToGiteaRepository
Caching disabled for task ':publishMavenJavaPublicationToGiteaRepository' because:Build cache is disabled
Task ':publishMavenJavaPublicationToGiteaRepository' is not up-to-date because:Task has not declared any outputs despite executing actions.
Publishing to repository 'Gitea' (http://127.0.0.1:3004/api/packages/huangwending/maven)
Uploading hello-0.0.1.jar to /api/packages/huangwending/maven/cn/ac/trimps/sv/hello/0.0.1/hello-0.0.1.jar
Uploading hello-0.0.1.pom to /api/packages/huangwending/maven/cn/ac/trimps/sv/hello/0.0.1/hello-0.0.1.pom
Uploading hello-0.0.1.module to /api/packages/huangwending/maven/cn/ac/trimps/sv/hello/0.0.1/hello-0.0.1.module
Uploading maven-metadata.xml to /api/packages/huangwending/maven/cn/ac/trimps/sv/hello/maven-metadata.xml
:publishMavenJavaPublicationToGiteaRepository (Thread[Execution worker for ':',5,main]) completed. Took 1.793 secs.
:publishAllPublicationsToGiteaRepository (Thread[Execution worker for ':',5,main]) started.> Task :publishAllPublicationsToGiteaRepository
Skipping task ':publishAllPublicationsToGiteaRepository' as it has no actions.
:publishAllPublicationsToGiteaRepository (Thread[Execution worker for ':',5,main]) completed. Took 0.0 secs.BUILD SUCCESSFUL in 14s
7 actionable tasks: 6 executed, 1 up-to-date
PS G:\workspace\study\hello>
3、新建test工程,并引用发布的依赖
(1)TestApplication.java
package cn.ac.trimps.sv;import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Configuration;import cn.ac.trimps.sv.config.EnableHello;@EnableHello
@Configuration
@SpringBootApplication
public class TestApplication implements CommandLineRunner {public static void main(String[] args) {SpringApplication.run(TestApplication.class, args);}@Overridepublic void run(String... arg0) throws Exception {}}
(2)TestController.java
package cn.ac.trimps.sv.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;import cn.ac.trimps.sv.service.HelloService;@RestController
@RequestMapping("test")
public class TestController {@AutowiredHelloService helloService;@RequestMapping(value = "f1", method = RequestMethod.GET)public String f1() {return helloService.helloWorld();}}
(3)application.properties
logging.config=classpath:logback-plus.xmlserver.port=1401
(4)logback-plus.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration><include resource="org/springframework/boot/logging/logback/defaults.xml" /><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} - %msg %n</pattern><charset>UTF-8</charset></encoder><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter></appender><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>/home/logs/test/stdout.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- daily rollover 保存历史记录到这个文件夹一日起为后缀 --><fileNamePattern>/home/logs/test/stdout.log.%d{yyyy-MM-dd}-%i.log</fileNamePattern><!-- keep 30 days' worth of history --><maxHistory>30</maxHistory><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} - %msg %n</pattern><charset>UTF-8</charset> <!-- 此处设置字符集 --></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>INFO</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>/home/logs/test/stderr.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- daily rollover 保存历史记录到这个文件夹一日起为后缀 --><fileNamePattern>/home/logs/test/stderr.log.%d{yyyy-MM-dd}-%i.log</fileNamePattern><!-- keep 30 days' worth of history --><maxHistory>30</maxHistory><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} - %msg %n</pattern><charset>UTF-8</charset> <!-- 此处设置字符集 --></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><root level="INFO"><appender-ref ref="CONSOLE"></appender-ref><appender-ref ref="FILE"></appender-ref><appender-ref ref="FILE_ERROR"></appender-ref></root>
</configuration>
(5)build.gradle
plugins {id 'org.springframework.boot' version '2.7.18'id 'io.spring.dependency-management' version '1.0.15.RELEASE'id 'java'id 'eclipse'
}group = 'cn.ac.trimps.sv'
version = '0.0.1'
sourceCompatibility = 1.8repositories {maven {url 'http://127.0.0.1:3004/api/packages/huangwending/maven'allowInsecureProtocol = true}maven {url 'https://maven.aliyun.com/repository/public'}mavenCentral()
}bootJar {launchScript()
}dependencies {implementation 'org.springframework.boot:spring-boot-starter-web'implementation 'cn.ac.trimps.sv:hello:0.0.1'compileOnly 'org.projectlombok:lombok'developmentOnly 'org.springframework.boot:spring-boot-devtools'annotationProcessor 'org.projectlombok:lombok'testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
4、运行test工程,使用postman测试接口
相关文章:
使用gitea发布软件包
1、新建hello工程 (1)HelloApplication.java package cn.ac.trimps.sv;import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplicati…...
如何加速机器学习模型训练:深入探讨与实用技巧
在机器学习和深度学习的应用中,训练模型通常需要耗费大量时间。随着数据集的增大、模型复杂度的提升以及任务的多样化,训练速度变得越来越重要。无论是在学术研究中,还是在工业应用中,加速训练过程不仅能提高工作效率,…...
HBuider中Uniapp去除顶部导航栏-小程序、H5、APP适用
文件pages.json中改"globalStyle" "globalStyle": {"navigationBarTextStyle": "black","navigationBarBackgroundColor": "#F8F8F8","backgroundColor": "#F8F8F8","titleNView"…...
scGPT-spatial:持续预训练scGPT用于空间转录组
空间转录组学已成为一种关键技术,可在细胞的空间环境中对其基因表达进行分析。公开可用的空间数据的迅速增长,为我们进一步理解驱动细胞命运决定和疾病进展的微环境提供了契机。然而,现有的基础模型大多是在scRNA-seq数据上进行预训练的&…...
ERP管理系统对企业财务管理有什么重要意义
在知识经济浪潮的推动下,企业的核心资产正经历着从传统厂房设备向知识产权的历史性跨越。专利技术、品牌价值、人才储备等无形资产逐渐成为驱动企业发展的核心引擎,但这类资产的非实体性与价值波动性,却让传统财务管理工具陷入"看得见摸…...
【数据库原理及安全实验】实验五 数据库备份与恢复
指导书原文 数据库的备份与恢复SSMS 【实验目的】 1) 熟悉并掌握利用界面操作进行数据库备份和恢复的原理和操作。 【实验原理】 1) 数据库的恢复包括大容量日志恢复模式和简单恢复模式。其中大容量日志恢复模式,简单地说就是要对大容量操作进行最小日志记录&a…...
【人脸去遮挡前沿】三阶段级联引导学习如何突破真实场景遮挡难题?
一、现实痛点:当人脸被遮挡,AI “认脸” 有多难? 你是否遇到过这样的场景? 中考体育测试:2025 年天津泰达街中考考场要求考生 “脸部无遮挡” 才能通过人脸识别入场,戴口罩、帽子的学生需现场调整发型。智能门锁:奇景光电在 CES 2025 推出的 WiseEye 掌静脉模块,通过掌…...
Kettle下载安装教程
## 什么是Kettle Kettle(现在也称为Pentaho Data Integration,简称PDI)是一款开源的ETL(Extract-Transform-Load)工具,用于数据抽取、转换和加载。它允许用户通过图形化界面设计和执行数据集成流程…...
树的序列化 - 学习笔记
树的序列化可以有很多种类:可以变成 dfs 序,可以变成欧拉序,还有什么括号序的科技。 但是除了第一个以外其他的都没什么用(要么也可以被已有的算法给替代掉)。所以表面上是讲树的序列化,实际上还是讲的 df…...
数电发票整理:免费实用工具如何高效解析 XML 发票数据
如今数字电子发票越来越普及,但是数电发票的整理还是颇有讲究~ 今天给大家介绍一个 XML 发票阅读器。使用它完全不收取任何费用,且无广告干扰,对财务人员而言十分实用。 01 软件介绍 这款软件就是XML格式(数电票)阅读…...
ubuntu22.04 qemu arm64 环境搭建
目录 创建 安装 Qemu 启动 # 进入qemu虚拟机后执行 qemu编译器安装 创建 qemu-img create ubuntu22.04_arm64.img 40G 安装 qemu-system-aarch64 -m 4096 -cpu cortex-a57 -smp 4 -M virt -bios QEMU_EFI.fd -nographic -drive ifnone,fileubuntu-22.04.5-live-server-a…...
数据转储(go)
随着时间推移,数据库中的数据量不断累积,可能导致查询性能下降、存储压力增加等问题。数据转储作为一种有效的数据管理策略,能够将历史数据从生产数据库中转移到其他存储介质,从而减轻数据库负担,提高系统性能&…...
LeetCode167_两数之和 Ⅱ - 输入有序数组
LeetCode167_两数之和 Ⅱ - 输入有序数组 标签:#数组 #双指针 #二分查找Ⅰ. 题目Ⅱ. 示例 0. 个人方法官方题解一:二分查找官方题解二:双指针 标签:#数组 #双指针 #二分查找 Ⅰ. 题目 给你一个下标从 1 开始的整数数组 numbers …...
【AI平台】n8n入门5:创建MCP服务,及vscode调用MCP测试
前言 用n8n搭建一个MCP服务,然后用开发环境的MCP测试工具,测试调用一下。例子简单,只为了解原理。在开发环境,安装测试mcp服务的工具,vscode和Trae操作类似,而且在一个机器上的话,安装的插件公…...
第六部分:实战项目与拓展
欢迎来到 OpenCV 教程的第六部分!你已经走过了从像素操作到特征提取、再到基础目标检测的旅程。现在,我们将迎接更激动人心的挑战:将这些技术结合起来,构建更贴近实际应用的系统。 本部分将带领你从更高层面思考如何设计一个计算…...
SQL Server连接异常 证书链是由不受信任的颁发机构颁发的
使用SQL Server连接数据库时报错如下: 标题: 连接到服务器 ------------------------------ 无法连接到 DESKTOP-N2KOQ8J\SQLEXPRESS。 ------------------------------ 其他信息: A connection was successfully established with the server, but then an erro…...
WebGL图形编程实战【5】:层次构建 × Shader初始化深度剖析
层次结构模型 三维模型和现实中的人类或机器人不一样,它的部件并没有真正连接在一起。如果直接转动上臂,那么肘部以下的部分,包括前臂、手掌和手指,只会留在原地,这样手臂就断开了。 所以,当上臂绕肩关节转…...
126. 单词接龙 II
题目 按字典 wordList 完成从单词 beginWord 到单词 endWord 转化,一个表示此过程的 转换序列 是形式上像 beginWord -> s1 -> s2 -> ... -> sk 这样的单词序列,并满足: 每对相邻的单词之间仅有单个字母不同。转换过程中的每个…...
【LeetCode Hot100】二叉树篇
前言 本文用于整理LeetCode Hot100中题目解答,因题目比较简单且更多是为了面试快速写出正确思路,只做简单题意解读和一句话题解方便记忆。但代码会全部给出,方便大家整理代码思路。 94. 二叉树的中序遍历 一句话题意 返回二叉树中序遍历的数…...
MySQL基础关键_002_DQL
目 录 一、初始化 二、简单查询 1.部分语法规则 2.查询一个字段 (1)查询员工编号 (2)查询员工姓名 3.查询多个字段 (1)查询员工编号、姓名 (2)查询部门编号、名称、位置 …...
游戏引擎学习第249天:清理调试宏
欢迎大家,让我们直接进入调试代码的改进工作 接下来,我们来看一下上次停留的位置。如果我没记错的话,上一场直播的结尾我有提到一些我想做的事情,并且在代码中留下了一个待办事项。所以也许我们今天首先做的就是解决这个问题。但…...
TwinCAT数据类型,%MX,%MD这些特殊符号
在 TwinCAT(Beckhoff PLC 编程环境)中,%MX、%MD 等符号是 IEC 61131-3 标准的地址表示法,用于直接访问 PLC 的物理 I/O 或内存区域。这些符号通常用于 变量声明 或 直接寻址,特别是在 TwinCAT 2 和 传统 PLC 编程 中较…...
力扣——20有效的括号
目录 1.题目描述: 2.算法思路: 3.代码展示: 1.题目描述: 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须…...
正点原子STM32H743单片机实现ADC多通道检测
目标 使用STM32CubeMX工具,配置ADC相关参数,实现在STM32H743单片机上获取ADC多通道电压值。共14个ADC引脚,ADC2有5个,ADC3有9个,全部设置单通道 ADC引脚 PF3PF4PF5PF10PC0PC2PC3PH2PH3PA3PB0PB1PA4PA5PA6 STM32cube…...
前端封装WebSocket工具n
Web API 提供的 WebSocket 类,封装一个 Socket 类 // socket.js import modal from /plugins/modal const baseURL import.meta.env.VITE_APP_BASE_WS; const EventTypes [open, close, message, error, reconnect]; const DEFAULT_CHECK_TIME 55 * 1000; // 心…...
Docker进入MySQL之后如何用sql文件初始化数据
关闭Docker-compose.yml里面所有容器 docker compose -f docker_compose.yml down后台形式开启Docker-compose.yml所有容器 docker compose -f docker_compose.yml up -d罗列出所有启动过的(包括退出过的)容器 docker ps -a进入指定容器ID内部 docke…...
Docker搜索镜像报错
科学上网最方便。。。。 尝试一: 报错处理 Error response from daemon: Get https://index.docker.io/v1/search?qmysql&n25: dial tcp 31.13.84.2:443: i/o timeout 国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docke…...
【Unity笔记】基于距离驱动的参数映射器 InverseDistanceMapper 设计与实现
需求: 当用户距离目标位置越近,参数值越大。 可用于控制场景亮度、动画进度、交互强度等多种效果。 一、需求背景:如何让“距离”成为设计的一部分? 在虚拟现实(VR)、增强现实(AR)乃…...
【Spring AI】Java结合ollama实现大模型调用
在较新的Java版本中,编译器已经支持了接入各种AI模型工具进行开发,这篇文章我会介绍如何利用Spring AI进行大模型的调用的基础方法。 环境准备 由于这篇文章是结合ollama进行演示,所以在开始前需要先安装ollama服务,这个的具体步…...
docker制作python大模型镜像(miniconda环境),工程改造记录
**环境说明:**从系统镜像开始打造python大模型镜像,之前是人工手动装的方式,并且模型和依赖在公网中,对于离线交付环境不太友好,所以打造的离线化交付版本 Dockerfile: FROM centos:7.9 ENV PYTHONIOENCODINGutf-8 E…...
在油气地震资料积分法偏移成像中,起伏地表处理
在油气地震资料积分法偏移成像中,起伏地表情况会带来波场传播路径畸变、静校正问题以及成像精度下降等挑战。以下是处理起伏地表的常用方法和技术要点: 1. 静校正预处理 高程静校正:将地表各接收点校正到统一基准面(浮动基准面或…...
经典算法 独立任务最优调度问题
独立任务最优调度问题 题目描述 用2 台处理机A 和B 处理n 个作业。设第i 个作业交给机器A 处理时需要时间ai ,若由机器B 来处理,则需要时间bi 。由于各作业的特点和机器的性能关系,很可能对于某些i,有ai >bi,而对…...
在TensorFlow中,`Dense`和`Activation`是深度学习模型构建里常用的层
在TensorFlow中,Dense和Activation是深度学习模型构建里常用的层,下面就详细解释它们的使用语法和含义。 1. Dense层 含义 Dense层也就是全连接层,这是神经网络里最基础的层。在全连接层中,每一个输入神经元都和输出神经元相连…...
基于 Rancher 部署 Kubernetes 集群的工程实践指南
一、现状分析 在当今的云计算和容器化领域,Kubernetes(K8S)已经成为了容器编排和管理的事实标准。根据 Gartner 的数据,超过 70% 的企业在生产环境中使用 K8S 来管理容器化应用。然而,K8S 的安装和管理对于许多企业来…...
Seaborn
1. Seaborn概述:Seaborn是基于Matplotlib的Python数据可视化库,专注绘制统计图形。它简化可视化流程,提供高级接口与美观默认主题,能以少量代码实现复杂图形绘制。 2. 安装与导入:安装Seaborn可使用 pip install seabo…...
0基础FWT详解2(巩固)
FWT巩固1 FWT巩固1卡常技巧巩固习题luogu6097CF662Cluogu4221FWT巩固1 在 上篇文章 中,我们学习了 F W T FWT FWT,本文将带读者一起做几道题,巩固对 F W T FWT FWT 的使用 卡常技巧 一个常数大的 F W T FWT FWT 是非常不利于做题的,所以我们需要卡常。 作者简单总结…...
阿里云 ECS 服务器进阶指南:存储扩展、成本优化与架构设计
一、弹性存储架构:块存储深度解析与挂载实践 (一)块存储类型与技术特性 阿里云块存储作为 ECS 核心存储方案,提供三种主流类型: ESSD 云盘 性能等级:PL0/PL1/PL2/PL3,最高支持 100 万 IOPS …...
运维打铁: 存储方案全解析
文章目录 一、引言二、思维导图三、常见存储方案介绍3.1 直接附加存储(DAS,Direct Attached Storage)1. 原理2. 优缺点3. 适用场景 3.2 网络附加存储(NAS,Network Attached Storage)1. 原理2. 优缺点3. 适用…...
Semtech公司简介以及主流产品
Semtech 公司是一家美国的半导体公司,总部位于加利福尼亚州卡马里洛。以下是其简介和主流产品介绍: 公司简介 成立时间与地点:1960 年成立于加利福尼亚州纽伯里帕克。发展历程:最初为军事和航空航天公司提供零部件,1…...
flutter 专题 五十六 Google 2020开发者大会Flutter专题
由于疫情的原因,今年的Google 开发者大会 (Google Developer Summit) 在线上举行,本次大会以“代码不止”为主题,全面介绍了产品更新以及一系列面向本地开发者的技术支持内容。我比较关注的是移动开发,在本次大会上,关…...
93. 后台线程与主线程更新UI Maui例子 C#例子
在.NET MAUI开发中,多线程是常见的需求,但UI更新必须在主线程上执行。今天,我们来探讨一个简单而优雅的解决方案:MainThread.InvokeOnMainThreadAsync。 一、背景 在跨平台应用开发中,后台线程常用于执行耗时操作&am…...
5.运输层
5. 运输层 1. 概述 第2~4章依次介绍了计算机网络体系结构中的物理层、数据链路层和网络层,它们共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信然而在计算机网络中实际进行通信的真正实体,是位于通信两端主机中的…...
ActiveMQ 可靠性保障:消息确认与重发机制(二)
ActiveMQ 重发机制 重发机制的原理与触发条件 ActiveMQ 的重发机制是确保消息可靠传输的重要手段。当消息发送到 ActiveMQ 服务器后,如果消费者由于某些原因未能成功处理消息,ActiveMQ 会依据配置的重发策略,将消息重新放入队列或主题中&am…...
Vue+tdesign t-input-number 设置长度和显示X号
一、需求 Vuetdesign t-input-number 想要设置input的maxlen和显示X号 二、实现 t-input,可以直接使用maxlength和clearable属性 <t-input v-model"value" clearable maxlength10 placeholder"请输入" clear"onClear" blur&q…...
机器学习|通过线性回归了解算法流程
1.线性回归引入 2.决策函数 3. 损失函数 4.目标函数 5.目标函数优化问题 6.过拟合 7.正则化...
两向量平行公式、向量与平面平行公式、两平面平行公式;两向量垂直公式、向量与平面垂直公式、两平面垂直公式
目录 一、两向量平行公式 二、向量与平面平行公式 三、两平面平行公式 四、两向量垂直公式 五、向量与平面垂直公式 六、两平面垂直公式 观察与总结 一、两向量平行公式 二、向量与平面平行公式 三、两平面平行公式 四、两向量垂直公式 五、向量与平…...
vscode 个性化
vscode 个性化 设置 吸顶效果 使用前使用后 设置方法 VS Code 的粘性滚动预览 - 类似于 Excel 的冻结首行 插件 代码片段分享 - CodeSnap 使用方式 CtrlShiftP输入CodeSnap 唤起插件选择代码 行内报错提示 - Error Lens 使用前使用后 VSCode Error Lens插件介绍&…...
OpenHarmony-简单的HDF驱动
学习于:https://docs.openharmony.cn/pages/v5.0/zh-cn/device-dev/driver/driver-hdf-manage.md 首先,OpenHarmony系统里的HDF(Hardware Driver Foundation)驱动框架,已经规范设备驱动的模型、设备节点的配置与统一的…...
Copilot重磅更新:引用文件夹创建Word文档
大家好,AI技术笔记为您带来一则好消息: 根据广大用户的反馈,Microsoft 365 Copilot在Word中的引用能力全面升级啦! 不管是撰写、审阅还是定稿文档,现在你可以更快、更高效地引用更多资料! ✨三大重磅改进…...
SQL Server数据库提权的几种方法——提权教程
SQL Server数据库提权的几种方法——提权教程 一、简介 在利用系统溢出漏洞没有效果的情况下,可以采用数据库进行提权。 数据库提权的前提条件: 1、服务器开启数据库服务 2、获取到最高权限用户密码 (除Access数据库外,其他数据库基本都存在数据库提权的可能) 二、使用x…...