maven打包spring项目

常用的Maven命令如下

命令   说明
mvn clean    清理Maven 项目。会删除目标路径(一般是target目录)Maven生成的打包文件,编译文件。
mvn package    打包Maven项目,会生成jar 或者war文件。
mvn test    执行test目录下的测试用例。
mvn deploy    发布依赖到远端
mvn site    生成项目相关的信息
mvn archetype创建Maven 项目
mvn tomcat:run 运行在Tomcat容器
mvn install    安装依赖

jar包

打包到本地:

mvn clean install -Dmaven.test.skip=true

打包到远程仓库:

 mvn clean deplay -Dmaven.test.skip=true

说明:

clean: 是清除之前的jar包,

install:是打包到本地,

deploy:是打包到远程仓库

-Dmaven.test.skip=true :是忽略测试代码;

war包

mvn clean package -Dmaven.test.skip=true

maven的spring boot 打包分离依赖及配置文件

<!--省略 其他配置 --><!--参数配置--><properties><package.output.basedir>${project.build.directory}/${project.artifactId}-${project.version}</package.output.basedir><output.dependence.file.path>lib/</output.dependence.file.path><output.resource.file.path>config/</output.resource.file.path><output.shell.file.path>bin/</output.shell.file.path></properties><!--打包配置配置--><build><!-- 打包名称 如果需要包含时间戳,需要加入时间戳插件 --><finalName>${project.artifactId}-${project.version}</finalName><!--打包加GMT+8时间插件(默认是UTC时间少8小时)--><plugins><plugin><groupId>org.codehaus.mojo</groupId><artifactId>buildnumber-maven-plugin</artifactId><version>1.4</version><configuration><timestampFormat>yyyyMMddHHmmss</timestampFormat></configuration><executions><execution><goals><goal>create-timestamp</goal></goals></execution></executions><inherited>false</inherited></plugin><!--移除配置文件将其不打包进jar包中,并可以将打包后的jar包输出到指定路径 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><!-- 剔除配置文件或目录:注意从编译结果目录开始算目录结构excludes\includes 是根据编译后的classes这个路径计算的--><excludes><!-- 剔除指定后缀配置文件 --><exclude>*.properties</exclude><exclude>*.yml</exclude><!-- 剔除指定目录 --><!-- <exclude>/static/**</exclude>--></excludes><archive><manifest><addClasspath>true</addClasspath><!-- MANIFEST.MF 中 Class-Path 各个依赖加入前缀 --><!--lib文件夹内容,需要 maven-dependency-plugin插件补充 (依赖包剥离位置)--><classpathPrefix>${output.dependence.file.path}</classpathPrefix><!-- jar包不包含唯一版本标识 --><useUniqueVersions>false</useUniqueVersions><!--指定入口类 --><mainClass>com.zhong.pacakge.springpacakage.PackageSpringPlugsApplication</mainClass></manifest><manifestEntries><!--MANIFEST.MF 中 Class-Path 加入自定义路径,多个路径用空格隔开 --><!--此处config文件夹的内容,需要maven-resources-plugin插件补充上 (配置文件剥离位置)--><Class-Path>./${output.resource.file.path}</Class-Path></manifestEntries></archive><!--输出目录 不指定则输出到target下--><outputDirectory>${package.output.basedir}//${output.dependence.file.path}</outputDirectory></configuration></plugin><!-- 将依赖包导出到指定文件夹 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><executions><execution><id>copy-dependencies</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><!--依赖包的输出路径--><outputDirectory>${package.output.basedir}/${output.dependence.file.path}</outputDirectory></configuration></execution></executions></plugin><!-- 将需要复制的文件复制到指定路径(例:将配置文件提取到指定路径) --><plugin><artifactId>maven-resources-plugin</artifactId><executions><!-- 复制配置文件 --><execution><id>resources</id><phase>package</phase><goals><goal>copy-resources</goal></goals><configuration><!-- 复制哪些目录下的哪些文件到指定目录 --><resources><resource><directory>src/main/resources</directory><!-- 不配置excludes\includes默认就是复制指定目录的所有文件 --><includes><include>*.properties</include><include>*.yml</include><include>*/*.properties</include></includes></resource></resources><outputDirectory>${package.output.basedir}/${output.resource.file.path}</outputDirectory></configuration></execution><!-- 启动类文件 位置--><execution><id>shell</id><phase>package</phase><goals><goal>resources</goal></goals><configuration><!-- 复制哪些目录下的哪些文件到指定目录 --><resources><resource><directory>src/bin</directory><!-- 不配置excludes\includes默认就是复制指定目录的所有文件 --><includes><include>*.sh</include><include>*.bat</include></includes></resource></resources><outputDirectory>${package.output.basedir}/${output.shell.file.path}</outputDirectory></configuration></execution></executions></plugin><!-- spring-boot-maven-plugin可以不使用,可当做一般jar包来运行,可统一包内文件结构- --><!--<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration>&lt;!&ndash;重写包含依赖,包含不存在的依赖,jar里没有pom里的依赖 &ndash;&gt;<includes><include><groupId>non-exists</groupId><artifactId>non-exists</artifactId></include></includes><outputDirectory>${package.output.basedir}//${output.dependence.file.path}</outputDirectory></configuration><executions><execution><goals><goal>repackage</goal></goals><configuration>&lt;!&ndash;配置jar包特殊标识 配置后,保留原文件,生成新文件 *-run.jar &ndash;&gt;&lt;!&ndash;配置jar包特殊标识 不配置,原文件命名为 *.jar.original,生成新文件 *.jar &ndash;&gt;&lt;!&ndash;<classifier>run</classifier> &ndash;&gt;</configuration></execution></executions></plugin>--><!--maven打包时,跳过测试--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><configuration><skip>true</skip></configuration></plugin><!-- 指定多个源代码目录、多个资源文件目录 --><plugin><groupId>org.codehaus.mojo</groupId><artifactId>build-helper-maven-plugin</artifactId><version>1.8</version><executions><execution><id>add-source</id><phase>generate-sources</phase><goals><goal>add-source</goal></goals><configuration><sources><source>src/main/java</source><source>src/main/library</source></sources></configuration></execution></executions></plugin><!-- 编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build>

结果如下:

maven-assembly-plugin进行配置分离打包

assembly.xml配置参考官网:

Apache Maven Assembly Plugin – Assembly

 assembly.xml配置文件示例:

<?xml version="1.0" encoding="UTF-8"?>
<assembly><!-- 可自定义,这里指定的是项目环境 --><!-- xxx.tar.gz  --><id>assembly</id><!-- 打包的类型,如果有N个,将会打N个类型的包 --><formats><format>tar.gz</format><format>zip</format></formats><!--压缩包是否包含 基于项目 基本目录的存档--><includeBaseDirectory>true</includeBaseDirectory><!--文件设置,参考:https://maven.apache.org/plugins/maven-assembly-plugin/assembly.html --><fileSets><!-- 配置文件打包-打包至config目录下 fileSet 可以多个--><fileSet><!--目标目录,会处理目录里面的所有文件--><directory>${project.basedir}/src/main/resources/</directory><!--打包后的目标文件夹--><outputDirectory>config</outputDirectory><!--指定打包的文件--><includes><include>*.xml</include><include>*.properties</include><include>common/*.properties</include></includes><!--排除的文件按--><!-- <excludes><exclude></exclude></excludes>--><!--目录权限:用户具有读/写/执行权限--><directoryMode>0755</directoryMode><!--文件权限:用户具有读/写/执行权限--><fileMode>0755</fileMode><!--脚本文件的编码问题在这里,要改为unix.如果是在windows上面编码,会出现dos编写问题--><lineEnding>unix</lineEnding></fileSet><!--项目自己创建并依赖的jar--><!-- <fileSet><directory>../package-common/target</directory><outputDirectory>jar</outputDirectory><includes><include>*.jar</include></includes></fileSet>--><!-- 启动文件目录 --><fileSet><directory>${basedir}/src/bin</directory><outputDirectory>bin</outputDirectory><fileMode>0755</fileMode><includes><include>**.sh</include><include>**.bat</include></includes></fileSet></fileSets><files><!--包含打包后的jar文件,可以不加入<dependencySet>指定的 <outputDirectory/>,默认打包的目录--><file><source>${project.build.directory}/${project.build.finalName}.jar</source></file><!--这种方式也可以进行文件处理,但是针对单文件--><!-- <file><source>${project.basedir}/src/main/resources/script/start.sh</source><fileMode>0755</fileMode><lineEnding>unix</lineEnding></file>--></files><dependencySets><dependencySet><!--是否把本项目添加到依赖文件夹下:--><useProjectArtifact>false</useProjectArtifact><!-- 将项目所有依赖包拷贝到发布包的lib目录下 :--><outputDirectory>lib</outputDirectory><!-- 符合runtime作用范围的依赖会被打包进去: --><scope>runtime</scope><!-- 这个是为了解决lib下同一个jar包可能有多个SNAPSHOT快照版的问题,比如后面加了不同的时间戳--><outputFileNameMapping>${artifact.artifactId}-${artifact.baseVersion}.${artifact.extension}</outputFileNameMapping><fileMode>0755</fileMode><excludes><exclude>${project.groupId}:${project.artifactId}</exclude></excludes></dependencySet><!--<dependencySet>&lt;!&ndash; 这个是为了解决lib下同一个jar包可能有多个SNAPSHOT快照版的问题,比如后面加了不同的时间戳&ndash;&gt;<outputFileNameMapping>${artifact.artifactId}-${artifact.baseVersion}.${artifact.extension}</outputFileNameMapping><outputDirectory>boot</outputDirectory><fileMode>0755</fileMode><includes><include>${project.groupId}:${project.artifactId}</include></includes></dependencySet>--></dependencySets>
</assembly>

 项目的pom.xml的build配置

<build><!-- 打包后的启动jar名称 --><!-- <finalName>${project.groupId}</finalName>--><plugins><!-- 用于排除jar中依赖包 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><includes><!-- 项目启动jar包中排除依赖包 --><include><groupId>non-exists</groupId><artifactId>non-exists</artifactId></include></includes></configuration></plugin><!-- maven编译 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><!-- 不同版本需要制定具体的版本进行编译 --><source>${java.version}</source><target>${java.version}</target></configuration></plugin><!-- 打包时跳过测试 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.22.1</version><configuration><skipTests>true</skipTests></configuration></plugin><!-- 打包插件 --><plugin><artifactId>maven-assembly-plugin</artifactId><version>3.1.0</version><configuration><!--文件夹名称, 就是打包后里面的文件夹名称--><finalName>${project.build.finalName}</finalName><!--指定压缩包的输出路径--><outputDirectory>${project.basedir}/target/package</outputDirectory><descriptors><!--assembly.xml配置位置--><descriptor>src/main/resources/assembly/assembly.xml</descriptor></descriptors></configuration><executions><execution><id>make-assembly</id><!-- 绑定到package生命周期阶段 --><phase>package</phase><goals><!-- 只运行一次 --><goal>single</goal></goals></execution></executions></plugin></plugins></build>

使用idea的install功能或者执行命令 mvn package assembly:single

结果如下:

其他assembly.xml示例:将所有jar打到lib中

<?xml version="1.0" encoding="UTF-8"?>
<assembly><!-- 可自定义,这里指定的是项目环境 --><!-- xxx.tar.gz  --><id>assembly</id><!-- 打包的类型,如果有N个,将会打N个类型的包 --><formats><format>tar.gz</format><format>zip</format></formats><!--压缩包是否包含 基于项目 基本目录的存档--><includeBaseDirectory>true</includeBaseDirectory><!--文件设置,参考:https://maven.apache.org/plugins/maven-assembly-plugin/assembly.html --><fileSets><!-- 配置文件打包-打包至config目录下 fileSet 可以多个--><fileSet><!--目标目录,会处理目录里面的所有文件--><directory>${project.basedir}/src/main/resources/</directory><!--打包后的目标文件夹--><outputDirectory>config</outputDirectory><!--指定打包的文件--><includes><include>*.xml</include><include>*.properties</include><include>common/*.properties</include></includes><!--排除的文件按--><!-- <excludes><exclude></exclude></excludes>--><!--目录权限:用户具有读/写/执行权限--><directoryMode>0755</directoryMode><!--文件权限:用户具有读/写/执行权限--><fileMode>0755</fileMode><!--脚本文件的编码问题在这里,要改为unix.如果是在windows上面编码,会出现dos编写问题--><lineEnding>unix</lineEnding></fileSet><!--项目自己创建并依赖的jar--><!-- <fileSet><directory>../package-common/target</directory><outputDirectory>jar</outputDirectory><includes><include>*.jar</include></includes></fileSet>--><!-- 启动文件目录 --><fileSet><directory>${basedir}/src/bin</directory><outputDirectory>bin</outputDirectory><fileMode>0777</fileMode><includes><include>**.sh</include><include>**.bat</include></includes></fileSet></fileSets><files><!--包含打包后的jar文件,可以不加入<dependencySet>指定的 <outputDirectory/>,默认打包的目录--><!--<file><source>${project.build.directory}/${project.build.finalName}.jar</source></file>--><!--这种方式也可以进行文件处理,但是针对单文件--><!-- <file><source>${project.basedir}/src/main/resources/script/start.sh</source><fileMode>0755</fileMode><lineEnding>unix</lineEnding></file>--></files><dependencySets><dependencySet><!--是否把本项目添加到依赖文件夹下:--><useProjectArtifact>true</useProjectArtifact><!-- 将项目所有依赖包拷贝到发布包的lib目录下 :--><outputDirectory>lib</outputDirectory><!-- 符合runtime作用范围的依赖会被打包进去: --><scope>runtime</scope><!-- 这个是为了解决lib下同一个jar包可能有多个SNAPSHOT快照版的问题,比如后面加了不同的时间戳--><outputFileNameMapping>${artifact.artifactId}-${artifact.baseVersion}.${artifact.extension}</outputFileNameMapping><fileMode>0777</fileMode><!--排除指定的文件,不放到lib文件夹--><!--<excludes><exclude>${project.groupId}:${project.artifactId}</exclude></excludes>--></dependencySet><!--<dependencySet>&lt;!&ndash; 这个是为了解决lib下同一个jar包可能有多个SNAPSHOT快照版的问题,比如后面加了不同的时间戳&ndash;&gt;<outputFileNameMapping>${artifact.artifactId}-${artifact.baseVersion}.${artifact.extension}</outputFileNameMapping><outputDirectory>boot</outputDirectory><fileMode>0755</fileMode><includes><include>${project.groupId}:${project.artifactId}</include></includes></dependencySet>--></dependencySets>
</assembly>

结果如图:

 附上linux的执行脚本:

#!/bin/bash
# you can run script "sed -i 's/\r$//' start.sh" to format the fileSERVER_NAME=package-assembly-demo#找到当前文件路径
cd `dirname $0`
#上册目录
cd ..
DEPLOY_DIR=`pwd`
MAIN_CLASS_NANE=PackageAssemblyApplication
MAIN_CLASS_PATH=com.zhong.pacakge.assemblydemo.PackageAssemblyApplication
LOGS_DIR=${DEPLOY_DIR}/logs
STDOUT_LOG_FILE=${LOGS_DIR}/stdout.log#日志文件路径
if [ ! -d ${LOGS_DIR} ]; thenmkdir ${LOGS_DIR}
fi
#日志文件权限
chmod -R 777 ${LOGS_DIR}PIDS=`ps -ef | grep java | grep "$MAIN_CLASS_NANE" | awk '{print $2}'`
if [ -n "$PIDS" ]; thenecho "ERROR: The $SERVER_NAME already started!"echo "PID: $PIDS"exit 1
fi#-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=10101
CLASS_PATH=.:${DEPLOY_DIR}/config:${DEPLOY_DIR}/lib/*
JAVA_OPTS=" -server -Xmx1g -Xms1g -Xmn512m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "echo "Starting the $SERVER_NAME ..."nohup java ${JAVA_OPTS} -classpath ${CLASS_PATH} ${MAIN_CLASS_PATH} > ${STDOUT_LOG_FILE} 2>&1 &
sleep 5
if [ -n "$PIDS" ]; thenecho "$SERVER_NAME started PID: $PIDS"exit 1
fi

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/662638.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年超声波清洗机排行榜,实测五款超声波清洗机,哪款比较强?

相信大家在选购超声波清洗机时&#xff0c;会发现市面上有非常多的超声波清洗机品牌&#xff0c;会非常纠结到底哪款比较好用&#xff0c;而小编选购超声波清洗机时更多时候会比较在意的是便捷度、清水槽容量、噪音等方便的一个参数值&#xff0c;了解清楚各个参数后再选择超声…

cmd: Failure calling service package: Failed transaction(2147483646)

在终端Termux中执行pm命令&#xff0c;但是出现报错&#xff1a; cmd: Failure calling service package: Failed transaction(2147483646) 解决办法&#xff1a;您必须将selinux 更改为permissive。 # setenforce 0 需要ROOT权限才能执行成功。。。。 本文参考&#xff1a; T…

postgresql lc_ctype不同值之间的转换

LC_CTYPE 用于决定字元是否为数字,字母,空格,标点符号,及大小写等[1]。将 LC_CTYPE 设为「C」表示 isupper(c) 或 tolower(c) 等 C 语言函数[2]仅针对 US-ASCII 范围内的字元给出预期结果。因为像 upper()、lower() 或 initcap 这类型的Postgres SQL 语句是在libc 函数上实…

私域流量:用户增长与运营的艺术

在当今数字化的商业环境中&#xff0c;私域流量已成为企业发展的重要资源。私域流量指的是企业在自己的平台上积累的用户资源&#xff0c;这些用户通常具有较高的忠诚度&#xff0c;为企业带来稳定的收益。本文将探讨私域流量用户增长的关键策略与实践。 一、建立强大的品牌形…

02.PostgreSQL运算符

1. 算术运算符 算术运算符 描述 示例 + 加法运算符 SELECT A+B - 减法运算符 SELECT A-B * 乘法运算符 SELECT A*B / 除法运算符 SELECT A/B % 取余运算符 SELECT A%B 1.1 加法与减法操作符 SELECT 100,100+11,100-11,100+23.0,100-23.0 运算结果 由此得出结论: 一个整数加上…

2024美赛数学建模C题思路源码——网球选手的动量

这题挺有意思,没具体看比赛情况,打过比赛的人应该都知道险胜局(第二局、第五局逆转局)最影响心态的,导致第3、5局输了 模型结果需要证明这样的现象 赛题目的 赛题目的:分析网球球员的表现 问题一.球员在比赛特定时间表现力 问题分析 excel数据:每个时间段有16场比赛,…

测试ASP.NET Core项目调用EasyCaching的基本用法(Redis)

EasyCaching中的包EasyCaching.Redis和EasyCaching.CSRedis都支持集成Redis实现缓存&#xff0c;前者基于StackExchange.Redis&#xff0c;而后者基于CSRedisCore&#xff0c;本文学习使用EasyCaching.Redis包连接redis服务实现缓存的基本用法。   新建WebApi项目&#xff0c…

体育馆运动场地预定小程序的独特优势与用户体验

随着人们健康意识的提高&#xff0c;体育馆成为了大家进行锻炼和运动的重要场所。为了更好地满足用户的需求&#xff0c;体育馆需要开发一款预定场地的小程序&#xff0c;为用户提供便捷、高效的预定服务。本文将介绍如何使用乔拓云平台开发体育馆运动场地预定小程序&#xff0…

#10外部网页跳转vue3+SpringMVC解码GBK编码的参数

目录 1、背景 2、失败尝试之iconv-lite 2.1、安装和使用 2.2、遇到的问题 2.3、解决方案(vite-plugin-node-polyfills) 2.4、测试 3、成功尝试 3.1、前端参数读取方式 3.2、后端解码 1、背景 外部jsp页面中编码方式为GBK&#xff0c;跳转到vue页面时如果使用decodeURI…

vue不同环境配置不同打包命令

这个需求非常普遍&#xff0c;通常情况我们在开发的时候一般会有三个环境&#xff1a;开发环境、测试环境、生产环境&#xff0c;我们一步步来看下。 vue环境变量是什么&#xff1f; 指的是在不同地方&#xff08;开发环境、测试环境、生产环境&#xff09;&#xff0c;变量就…

【Node系列】REPL详解

文章目录 一、REPL介绍二、REPL案例三、REPL命令四、node介绍五、相关链接 一、REPL介绍 Node.js REPL&#xff08;Read-Eval-Print Loop&#xff09;是一个交互式环境&#xff0c;允许用户在命令行中直接输入JavaScript代码并立即看到结果。REPL是Node.js的一个重要组成部分&…

代码随想录算法训练营Day45|70. 爬楼梯(进阶版)、322. 零钱兑换、279.完全平方数

目录 70. 爬楼梯&#xff08;进阶版&#xff09; 前言 思路 算法实现 322. 零钱兑换 前言 思路 279.完全平方数 前言 思路 算法实现 总结 70. 爬楼梯&#xff08;进阶版&#xff09; 题目链接 文章链接 前言 本题是70. 爬楼梯问题的进阶版&#xff0c;每次可以跳跃的…

混合攻击流量对系统安全性的综合评估

很多针对安全设备的测试仅仅针对安全设备本身的防护&#xff0c;比如防御的漏洞攻击行为、恶意代码是否足够多&#xff0c;能否抵御大流量的L23层DDoS或者应用层的DDoS攻击&#xff0c;却没有考虑是否防御攻击时&#xff0c;一并阻止了正常的业务流量。以下图为例&#xff0c;当…

Spring-mvc、Spring-boot中如何在调用同类方法时触发AOP

1. 问题描述 Spring-mvc和Spring-boot中aop可以实现代理的功能&#xff0c;我们可以借此实现事务和日志记录或者限流等多种操作。但是&#xff0c;如果你在一个方法中调用其同类下的其他方法的时候不会触发AOP。本文主要说明其原因及解决办法和实现原理。 2. 原因 AIOP的本质是…

从零开始学Linux之gcc链接

目录 创建静态库并使用 创建动态库(共享库)并使用 链接&#xff1a;将.o目标文件链接起来生成一个可执行程序文件&#xff0c;可分为静态链接和动态链接 静态链接&#xff1a;链接器会找出程序所需的函数&#xff0c;然后将它们拷贝到执行文件&#xff0c;由于这种拷贝是完整…

apt 指定版本

apt 指定版本 https://linuxcpp.0voice.com/?id117477 在使用apt命令安装软件时&#xff0c;可以通过指定版本来选择要安装的软件版本。具体步骤如下&#xff1a; 首先&#xff0c;确保你的系统已经添加了相应的软件源。 使用apt-cache policy命令查看可用版本列表&#xf…

vue3前端开发,element-plus前端框架探秘:scope对象

vue3前端开发&#xff0c;element-plus前端框架探秘:scope对象&#xff01;我们经常需要对当前行的数据进行操作&#xff0c;比如增加&#xff0c;删除&#xff0c;编辑等&#xff0c;为此我们需要传递当前行所对应的唯一主键,通常情况下&#xff0c;当前行对应的业务主键是id属…

麒麟系统—— openKylin 安装 Maven

麒麟系统—— openKylin 安装 Maven 一、准备工作1. 确保麒麟系统 openKylin 已经安装完毕。2. 确保 java 已经安装完毕 二、下载Maven三、解压 Maven 与环境配置解压配置环境变量验证 最终&#xff1a;介绍配置的其他参数使用 本文将分享如何在麒麟操作系统 openKylin 上安装…

一些大语言模型(LLM)相关的开源项目

一些大语言模型&#xff08;LLM&#xff09;相关的开源项目 更多文章访问: https://www.cyisme.top 因为站内限制问题&#xff0c;有些图片无法显示&#xff0c;导致阅读体验较差&#xff0c;可以访问原文&#xff1a;《一些大语言模型&#xff08;LLM&#xff09;相关的开源项…

Json序列化和反序列化 笔记

跟着施磊老师学C 下载&#xff1a;GitHub - nlohmann/json: JSON for Modern C 在single_include/nlohmann里头有一个json.hpp&#xff0c;把它放到我们的项目中就可以了 #include "json.hpp" using json nlohmann::json;#include <iostream> #include <…