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

maven的settings.xml和pom.xml配置文件详解

一、配置文件

maven的配置文件主要有 settings.xml 和pom.xml 两个文件。

  1. 其中在maven安装目录下的settings.xml,如:D:\Program Files\apache-maven-3.6.3\conf\settings.xml 是全局配置文件

  2. 用户目录的.m2子目录下的settings.xml,如:C:\Users\chenxc.m2\settings.xml 配置只是针对当前用户的配置文件

  3. 项目根路径下的pom.xml主要是对当前项目的配置。

局部配置优先于全局配置。 配置优先级从高到低:pom.xml> user settings > global settings

二、settings.xml 配置详解

1、localRepository

该值是此构建系统的本地存储库的路径。默认值为 ${user.home}/.m2/repository。此元素对于主构建服务器特别有用,允许所有登录用户从公共本地存储库进行构建。

<localRepository>D:\repository</localRepository>

2、interactiveMode

表示是否可以和用户交互以获得输入,默认为true。

<interactiveMode>true</interactiveMode>

3、offline

表示此构建系统是否应在离线模式下运行,则默认为false。 此元素对于由于网络设置或安全原因而无法连接到远程存储库的构建服务器非常有用。

<offline>false</offline>

4、pluginGroups

插件组,该元素包含一个元素列表pluginGroup,每个元素包含一个groupId。当使用插件且命令行中未提供 groupId 时,将搜索该列表。该列表默认包含 org.apache.maven.pluginsorg.codehaus.mojo

<pluginGroups><pluginGroup>org.eclipse.jetty</pluginGroup>
</pluginGroups>

如下,在pom文件中没有设置<groupId>,那么将会从<pluginGroups>列表中指定的位置搜索插件

<!-- 打包跳过测试 -->
<plugin><!-- <groupId>org.apache.maven.plugins</groupId> --><artifactId>maven-surefire-plugin</artifactId><configuration><skipTests>true</skipTests></configuration>
</plugin>

5、servers

私服服务器配置,配置私服的用户名和密码。配置的私服服务器可以用来发布jar包,与pom 中 distributionManagement 标签中配置的仓库ID相互对应。

<servers><server><id>server001</id><username>my_login</username><password>my_password</password><privateKey>${user.home}/.ssh/id_dsa</privateKey><passphrase>some_passphrase</passphrase><filePermissions>664</filePermissions><directoryPermissions>775</directoryPermissions><configuration></configuration></server>
</servers>
  • id :该id与<distributionManagement><repository>元素的<id>相匹配(注意不是用户登陆的id)。

    如下,在pom文件中设置的<distributionManagement><repository>元素的<id>要与settings.xml文件中<server><id>值一致才能匹配的上。

    <distributionManagement><repository><id>server001</id><url>http://121.***.***.51:1481/repository/maven/</url></repository>
    </distributionManagement>
    
  • username、password:这两元素以一对形式出现,表示向该服务器进行身份验证所需的登录名和密码。

  • privateKey、passphrase:与前两个元素一样,指定了一个私钥位置(默认是${user.home}/.ssh/id_dsa)以及私钥密码(私钥密码可以没有)。将来<passphrase><password>元素可能会被提取到外部,但目前它们必须在settings.xml文件以纯文本的形式声明。

  • filePermissions、DirectoryPermissions:在部署时创建存储库文件或目录时,这些是要使用的权限。每个的合法值都是与 unix 文件权限相对应的三位数,例如 664 或 775。

注意:如果您使用私钥<privateKey>登录服务器,请确保没有填写<password>元素。否则<privateKey>将被忽略。

密码加密
2.1.0+ 中添加了一项新功能 - 服务器密码和密码加密。请参阅此页面的详细信息

6、mirrors

<mirrors><mirror><id>planetmirror.com</id><name>PlanetMirror Australia</name><url>http://downloads.planetmirror.com/pub/maven2</url><mirrorOf>central</mirrorOf></mirror>
</mirrors>
  • id , name:此镜像的唯一标识符和用户友好的名称。id用于区分镜像元素,并在连接到镜像时从<servers>部分选择相应的凭据。
  • url:该镜像的基本 URL。构建系统将使用此 URL 连接到存储库,而不是原始存储库 URL。
  • mirrorOf:被镜像的服务器的id。例如,要指向 Mavencentral存储库 ( https://repo.maven.apache.org/maven2/) 的镜像,请将此元素设置为 central。更高级的映射如下:
    • *匹配所有存储库 ID。
    • external:*匹配除使用本地主机或基于文件的存储库之外的所有存储库。当您想要排除为集成测试定义的重定向存储库时,可以使用此选项。
    • 从 Maven 3.8.0 开始,external:http:*匹配除使用 localhost 之外的所有使用 HTTP 的存储库。
    • 可以使用逗号作为分隔符来指定多个存储库,如repo,repo1 = repo 或 repo1
    • !可以与上述通配符之一结合使用以排除存储库 ID,如!repo1除 repo1 之外的所有内容

注意:给定存储库最多可以有一个镜像。换句话说,您无法将单个存储库映射到一组全部定义相同<mirrorOf>值的镜像。Maven 不会聚合镜像,而只是选择第一个匹配项。

7、proxies

<proxies><proxy><id>myproxy</id><active>true</active><protocol>http</protocol><host>proxy.somewhere.com</host><port>8080</port><username>proxyuser</username><password>somepassword</password><nonProxyHosts>*.google.com|ibiblio.org</nonProxyHosts></proxy>
</proxies>
  • id:该代理的唯一标识符。这用于区分<proxy>元素。
  • active:true 如果此代理处于活动状态。这对于声明一组代理很有用,但一次只能有一个代理处于活动状态。
  • protocol、host、portprotocol://host:port分别为代理的协议,主机,端口元素。
  • username、password:这些元素以一对形式出现,表示对此代理服务器进行身份验证所需的登录名和密码。
  • nonProxyHosts:这是不应代理的主机列表。该列表的分隔符由代理服务器指定;例子中使用了竖线分隔符,使用逗号分隔也很常见。

8、profiles

setting.xml文件中的<profile>是pom中的<profile>的其中一部分,<profile>里包含<activation><repositories><pluginRepositories><properties>这四个主要元素。因为它们关注的是整个构建系统(这就是settings.xml文件的作用),而不是单个项目对象模型设置。如果一个settings.xml中的<profile>被激活,它的值会覆盖任何其它定义在pom中带有相同id的<profile>

<profiles><profile><id>test</id>...</profile>
</profiles>

8.1、activation

<activation>是用来确定该<profile>是否被激活使用,当<profile>被激活的时候, <repositories><pluginRepositories><properties>这三个元素里的配置才生效。<activation>所以这个元素要至少要和其他三个元素之一同时使用才有意义。

<profiles><profile><id>test</id><activation><activeByDefault>false</activeByDefault><jdk>1.5</jdk><os><name>Windows XP</name><family>Windows</family><arch>x86</arch><version>5.1.2600</version></os><property><name>mavenVersion</name><value>2.0.3</value></property><file><exists>${basedir}/file2.properties</exists><missing>${basedir}/file1.properties</missing></file></activation>...</profile>
</profiles>
  • activeByDefault<profile>默认是否激活的标识
  • jdk:当运行的java程序的jdk的版本与指定的版本匹配时<profile>将被激活。如:上面的例子中,当运行的java程序的jdk版本为1.5.0_06时<profile>将被激活。jdk的版本还支持范围配。 有关支持范围匹配的更多详细信息,请参阅 maven-enforcer-plugin 。
  • os:该os元素可以定义上面所示的一些操作系统特定属性。 当满足条件时<profile>将被激活
    • name:操作系统的名字匹配则激活该<profile>
    • family:操作系统所属家族则激活该<profile>
    • arch:操作系统体系结构则激活该<profile>
    • version:操作系统版本则激活该<profile>
  • property:如果Maven检测到对应的name=value对的属性(其值可以在pom 中通过${name}引用),则<profile>将激活。如果值字段是空的,那么存在属性名称字段就会激活profile,如:上面例子中如果存在mavenVersion=2.0.3,那么<profile>将激活。
  • file:通过给定的文件存在或丢失来激活<profile>
    • exists:如果指定的文件存在,则激活<profile>
    • missing:如果指定的文件不存在,则激活<profile>

注意:这多个激活条件的关系是这样的:Maven 3.2.2之前是只要满足其中之一就可以激活该<profile>,Maven 3.2.2之后是满足所有才可以激活该<profile>

8.2、properties

对应<profile>的扩展属性列表。可以用来存放一些值。这些值可以在pom文件中的任何地方使用标记${X}来使用,这里X是指属性的名称(如下例中的${user.install})。

<profiles><profile>...<properties><user.install>${user.home}/our-project</user.install></properties>...</profile>
</profiles>

属性的值有五种不同的形式

  • env.X: 在一个变量前加上"env."的前缀,会返回一个shell环境变量。例如:env.PATH指代了$path环境变量(在Windows上是%PATH%)。
  • project.x:指代了pom中对应的元素值。例如: <project><version>1.0</version></project>通过${project.version}获得version的值。
  • settings.x: 指代了settings.xml中对应元素的值。例如:<settings><offline>false</offline></settings>通过${settings.offline}获得<offline>的值。
  • java系统属性: 所有可通过java.lang.System.getProperties()获取的属性都能在pom中使用该形式获取,例如 ${java.home}。
  • x: 在<properties/>元素中,或者外部文件中设置,以${someVar}的形式使用。

如果我们想在application.peoperties文件中引用这个user.install属性,这里注意引用时要用占位符@

user.install=@user.install@

在springboot工程中只能使用@xxx@(xxx为自定义的属性名)

8.3、repositories

远程仓库列表,它是Maven用来填充构建系统本地仓库所使用的一组远程仓库列表。

<profiles><profile>...<repositories><repository><id>codehausSnapshots</id><name>Codehaus Snapshots</name><releases><enabled>false</enabled><updatePolicy>always</updatePolicy><checksumPolicy>warn</checksumPolicy></releases><snapshots><enabled>true</enabled><updatePolicy>never</updatePolicy><checksumPolicy>fail</checksumPolicy></snapshots><url>http://snapshots.maven.codehaus.org/maven2</url><layout>default</layout></repository></repositories>...</profile></profiles>
  • id、name:远程仓库唯一标识和远程仓库名称
  • releases、snapshots:如何处理远程仓库里发布版本(releases)和快照版本(snapshots)的下载
    • enabledtrue或者false表示该仓库是否开启下载某种类型构件(发布版,快照版)。
    • updatePolicy:该元素指定更新发生的频率。Maven会比较本地pom 和远程pom 的时间戳。这里的选项是:always(一直),daily(默认,每日),interval:X(这里X是以分钟为单位的时间间隔),或者never(从不)。
    • checksumPolicy:当Maven验证构件校验文件失败时该怎么做-ignore(忽略),fail(失败),或者warn(警告)。
  • layout:在上面对存储库的描述中,提到它们都遵循通用布局。这基本上是正确的。Maven 2 的存储库有一个默认布局;然而,Maven 1.x 有不同的布局。使用此元素指定是default(默认)还是legacy(遗留)。

8.4、pluginRepositories

插件仓库, Maven plugins是一种特殊的依赖项,与普通的jar包依赖仓库分开定义,结构与repositories类似。具体说明参考如上。

<profiles><profile>...<pluginRepositories><pluginRepository><id>myPluginRepo</id><name>My Plugins repo</name><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots><url>https://maven-central-eu....com/maven2/</url></pluginRepository></pluginRepositories>...</profile></profiles>

9. activeProfiles

它包含一组<activeProfile>元素,每个元素的值都是一个<profile><id>里的值。无论任何环境设置如何,<activeProfile>定义的任何<profile>都将处于活动状态。如果没有找到匹配的配置文件,则不会发生任何事情。和<activation> 配置相比 <activeProfiles> 配置比较简单,也比较常用。

<activeProfiles><activeProfile>env-test</activeProfile>
</activeProfiles>

三、pom.xml配置文件:

<parent><!--父项目的构件标识符 --><artifactId /><!--父项目的唯一标识符 --><groupId /><!--父项目的版本 --><version /><!-- 父项目的pom.xml文件的相对路径。默认值是../pom.xml。Maven首先在构建当前项目的地方寻找父项目的pom,其次在文件系统的这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻找父项目的pom。 注意:如果在父项目中通过<modules>指定了子模块,且子模块在父项目目录下,则不需要指定此配置。如果子项目不在父项目的目录下,应该指定此配置。--><relativePath>../pom.xml</relativePath>
</parent><!-- 模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者组织的唯一标志-->
<groupId>com.companyname.project-group</groupId>
<!-- 项目的唯一ID->
<artifactId>project</artifactId>
<!-- 版本号 -->
<version>1.0</version><!--项目产生的构件类型,例如jar、war、ear、pom -->
<packaging>jar</packaging><!-- 属性配置 -->
<properties><!-- 编译时的编码 --><maven.compiler.encoding>UTF-8</maven.compiler.encoding><spring-boot.version>2.3.7.RELEASE</spring-boot.version>
</properties>
<!-- 依赖配置 -->
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>${spring-boot.version}</version><scope>compile</scope></dependency>
</dependencies>
<!-- 依赖声明,不会真正引入包。一般在父pom中进行声明,在子pom中真正引入 -->
<dependencyManagement><dependencies><dependency><groupId>cn.hutool</groupId><artifactId>hutool-core</artifactId><version>${hutool.version}</version></dependency></dependencies>
</dependencyManagement>     <!-- 编译构建相关配置 -->
<build><!-- 插件申明,一般在父pom中声明,在子pom中真正引入 --><pluginManagement><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version></plugin></plugins></pluginManagement><!-- 插件引入,在父pom中引入以后,所有子pom中都会引入 --><plugins><plugin><groupId>org.sonarsource.scanner.maven</groupId><artifactId>sonar-maven-plugin</artifactId><version>3.6.0.1398</version></plugin></plugins>
</build>       <!-- 针对当前项目的远程仓库配置 -->
<repositories><repository><id>aliyun-public</id><url>https://maven.aliyun.com/repository/public</url><snapshots><enabled>false</enabled></snapshots><releases><enabled>true</enabled></releases></repository>
</repositories>
<!-- 针对当前项目的远程插件仓库配置 -->
<pluginRepositories><pluginRepository><id>aliyun-public</id><url>https://maven.aliyun.com/repository/public</url><snapshots><enabled>false</enabled></snapshots><releases><enabled>true</enabled></releases></pluginRepository>
</pluginRepositories><!--jar包发布私服配置-->
<distributionManagement><!--发布版本--><repository><!-- 此ID和setting.xml 中server中配置的服务器进行对应 --><id>maven-releases</id><name>releases</name><url>http://nexus.maven.cn/repository/maven-releases/</url><uniqueVersion>true</uniqueVersion></repository><!--快照版本--><snapshotRepository><id>maven-snapshots</id><name>snapshots</name><url>http://nexus.maven.cn/repository/maven-snapshots/</url></snapshotRepository>
</distributionManagement><!--动态构建配置,通过设置活动的profile,profile中的配置会作用于当前的项目编译构建 -->
<profiles><profile><id>dev</id><properties><spring.profiles.active>dev</spring.profiles.active></properties><activation><activeByDefault>true</activeByDefault></activation></profile><profile><id>prod</id><properties><spring.profiles.active>prod</spring.profiles.active></properties></profile>
</profiles>

四、远程仓库的加载

maven仓库依赖下载顺序:

  1. 在settings.xml文件中配置的本地仓库中寻找依赖,没找到则进入第2步。

  2. 在settings.xml文件中配置的全局远程仓库中寻找,没找到则进入第3步。

  3. 在当前项目的pom.xml中配置的远程仓库中寻找,如果没找到则进入第4步。

  4. 在中央仓库 https://repo.maven.apache.org/maven2 中寻找,如果没找到则抛出依赖无法加载异常。

相关文章:

maven的settings.xml和pom.xml配置文件详解

一、配置文件 maven的配置文件主要有 settings.xml 和pom.xml 两个文件。 其中在maven安装目录下的settings.xml&#xff0c;如&#xff1a;D:\Program Files\apache-maven-3.6.3\conf\settings.xml 是全局配置文件 用户目录的.m2子目录下的settings.xml&#xff0c;如&#…...

YB2503HV 100V 3A SOP8内置MOS 高效率降压IC(昱灿)

YB2503HV 100V 3A SOP8内置MOS 高效率降压IC 描述&#xff1a; YB2503HV是单片集成可设定输出电流的开关型降压恒压驱动器&#xff0c;可工作在宽输入电压范围具有优良的负载和线性调整度。安全保护机制包括每周期的峰值限流、软启动、过压保护和温度保护。YB2503HV需要非常少…...

Redis安装Linux

1、下载安装包 wget http://download.redis.io/releases/redis-3.0.0.tar.gz 2、安装 mkdir /usr/local/redis cp redis-3.0.0.tar.gz /usr/local/redis cd /usr/local/redis tar -zxvf redis-3.0.0.tar.gz cd /usr/local/redis/redis-3.0.0 make PREFIX/usr/local/red…...

PCL点云处理(007)-Ransac

随机抽样一致性算法RANSAC(Random sample consensus)是一种迭代的方法来从一系列包含有离异值的数据中计算数学模型参数的方法。 RANSAC算法本质上由两步组成&#xff0c;不断进行循环&#xff1a; 从输入数据中随机选出能组成数学模型的最小数目的元素&#xff0c;使用这些元素…...

有方N58 HTTP POST 请求连接 TDengine

串口调试软件&#xff1a;格西调试精灵 第一步先注册网络获取IP地址 建立PPP连接 ATXIIC1\r PPP链路建立成功&#xff0c;查询IP地址 ATXIIC?\r 设置网络APN ATCREG?\r 运行结果&#xff0c;红线处是获…...

基于Python+Pygame实现一个滑雪小游戏

目录 项目介绍Pygame介绍项目文件夹介绍演示视频代码免费领取 一、项目介绍 使用介绍&#xff1a;运行main.py文件后&#xff0c;通过左右按键可以控制小人的移动&#xff0c;如果经过旗杆那么10分&#xff0c;如果碰到树木那么减50分。 二、Pygame介绍 Pygame是一个用于游…...

【限制输入框值类型】自定义指令el-input输入类型限制,vue和html两个版本

前言 经常遇到输入框需要限制只能输入数字的&#xff0c; 因为用户很离谱&#xff0c;明显输入数字的地方他非要输入英文或者中文 但是用到UI框架或者自己写方法验证表单比较麻烦 为了一个输入框专门去弄一个验证很麻烦 所以这里就整合了两种自定义指令的方式&#xff0c;更加…...

对一个金融风控测额公式的理解(1)

目录 公式&#xff1a;&#xff08;近3个月回款总额/过去3个月的FBA平均库存价值&#xff09;*最近FBA的库存价值*过去13周FBA发货比例 详细讨论一下这个&#xff1a;&#xff08;近3个月回款总额/过去3个月的FBA平均库存价值&#xff09; 既然&#xff08;近3个月回款总额/…...

【GEE】2、探索数据集

1简介 在本单元中&#xff0c;我们将讨论以下概念&#xff1a; Google 地球引擎中可用的潜在数据来源。 通过生态示例显示的数据集采样用例。 如何使用 Google 地球引擎访问重要的元数据。 2背景 要将遥感集成到您的研究和分析中&#xff0c;学习如何解析 Google 地球引擎上…...

开发一款直播弹幕游戏需要多少钱?

开发一款直播弹幕游戏需要多少钱&#xff1f;有好多朋友在咨询过弹幕游戏的开发价格后&#xff0c;都会比较吃惊&#xff0c;一款体量这么小的游戏为什么动辄就要几万块甚至十几万&#xff1f; 我来给你们说分析一下原因&#xff0c;这种游戏如果脱离开直播间&#xff0c;可以…...

STM32F103C8T6第一天:认识STM32 标准库与HAL库 GPIO口 推挽输出与开漏输出

1. 课程概述&#xff08;297.1&#xff09; 课程要求&#xff1a;C语言熟练&#xff0c;提前学完 C51 2. 开发软件Keil5的安装&#xff08;298.2&#xff09; 开发环境的安装 编程语言&#xff1a;C语言需要安装的软件有两个&#xff1a;Keil5 和 STM32CubeMX Keil5 的安装…...

selenium元素定位 —— 提高篇 CSS定位元素

CSS (Cascading Style Sheets) 是一种用于渲染 HTML 或者 XML 文档的语言&#xff0c;CSS 利用其选择器可以将样式属性绑定到文档中的指定元素。理论上说无论一个元素定位有多复杂都能够定位到元素。 因为不同的浏览器 XPath 引擎不同甚至没有自己的 Xpath 引擎&#xff0c;这…...

隔离和非隔离电源的区别

一、电源隔离与非隔离 电源的隔离与非隔离&#xff0c;主要是针对开关电源而言&#xff0c;业内比较通用的看法是&#xff1a; 1、隔离电源&#xff1a;电源的输入回路和输出回路之间没有直接的电气连接&#xff0c;输入和输出之间是绝缘的高阻态&#xff0c;没有电流回路。 …...

C语言自定义数据类型

一、构造数据类型 构造数据类型&#xff1a;用户自己建立的数据类型&#xff08;自定义数据类型&#xff09; C语言中的自定义数据类型有&#xff1a;数组类型、结构体类型、共用体类型和枚举类型。 1.1. 结构体 C语言允许用户根据需要自己建立的由不同类型数据组成的组合型…...

SoftwareTest5 - 你就只知道功能测试吗 ?

你就只知道功能测试吗 ? 一 . 按照测试对象划分1.1 文档测试1.2 可靠性测试1.3 容错性测试1.4 安装卸载测试1.5 内存泄漏测试1.6 弱网测试 二 . 按是否查看代码划分2.1 黑盒测试2.2 白盒测试2.3 灰盒测试 三 . 按照开发阶段划分3.1 单元测试3.2 集成测试3.3 冒烟测试3.4 系统测…...

Uniapp 中,能够同时兼容H5、web、app、微信小程序的引入高德地图的语法格式

在 Uniapp 中&#xff0c;可以通过使用 uni-app 统一的 API 来同时兼容 H5、web、App 和微信小程序&#xff0c;而引入高德地图则有以下两种语法格式供选择&#xff1a; 使用 Vue.js 的语法格式&#xff1a; <template><view><map :longitude"longitude&…...

基于nodejs+vue网上鲜花销售系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…...

stm32 ETH

1 How do I create a project for STM32H7 with Ethernet and LwIP stack working? STM32 LWIP 接收大数据包导致Hardfault问题解决记录 Trying to get Ethernet, LWIP and FreeRTOS working on the STM32H745. Testing on the NUCLEO-H745ZI-Q using FW_1.7 and the STM32Cub…...

【深度学习基础】Pytorch框架CV开发(2)实战篇

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…...

C语言--输出1-100以内同时能被3和5整除的数

首先我们要有1-100的数字. for(int i1;i<100;i) 如何表示同时能被3和5同时整除呢&#xff1f; 如果这个数i&#xff0c;i%30&&i%50,那么这个数就可以同时被3和5整除 if(i%30&&i%50) 最后输出即可 完整代码&#xff1a; #include<stdio.h> void Sh…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

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

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

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...