若依 SpringCloud 配置记录

若依官网文档

一、下载 SpringCloud 项目代码

RuoYi-Cloud 项目代码

1、加载 Maven

2、必要时可能需要安装需要的插件支持

二、下载/运行 Nacos

Nacos 官网 下载连接若被重置,可以从这里进入获取

Nacos 官网文档

Nacos 项目代码

cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U

编译项目需要 Maven 支持,如果命令行无法执行的情况下,建议可以导入IDEA中,利用IDEA的maven去执行命令,我是用的后者。

编译后,目录 /nacos/distribution/target 下会有 nacos-server-$version 文件夹,可以直接将文件拷贝出来,为了学习和后期方便寻找位置,我在 Cloud 项目下创建了文件夹 support。

也可以在此下载稳定的版本 下载连接

打开 bin/startup.cmd,将集群模式修改成单机模式

原:set MODE="cluster"
改:set MODE="standalone"

打开 conf/application.properties,配置数据库链接,原项目使用的是 ry-config 命名,我做了修改,命名 ry-cloud-config。

配置到这里就完成了,但是不要着急启动,我们需要导入数据库。

打开 Cloud 项目,找到文件夹 sql,这里要注意一下,如果你想和原项目一致,这里不需要做修改,同样的 Nacos 配置的数据库也需要一致。

创建数据库,运行该 sql 脚本,导入成功后,双击执行 Nacos 中 bin/startup.cmd。

打开浏览器,访问 http://127.0.0.1:8848/nacos/index.html,默认的账号/密码均为:nacos

到此 Nacos 下载/运行完成。

注意:.sh 文件在 Linux 中无法执行,可以使用该方法解决

# vi startup.sh
:set ff=unix
:wq

三、下载/运行 Sentinel

可以从 https://github.com/alibaba/Sentinel/releases 下载 sentinel-dashboard-$version.jar 包。

通过 CMD 执行以下命令运行程序:

java -Dserver.port=8718 -Dcsp.sentinel.dashboard.server=localhost:8718 -Dproject.name=sentinel-dashboard -Dcsp.sentinel.api.port=8719 -jar .\sentinel-dashboard-1.8.0.jar

打开浏览器,访问 http://127.0.0.1:8718,默认的账号/密码均为:sentinel

到此 Sentinel 下载/运行完成。

四、下载/运行 Seata

此内容是可选项,因为 Cloud 项目默认是关闭状态的,如果你不了解或者不需要,可以忽略。

可以从 https://github.com/seata/seata/releases 下载 seata-server-$version.zip 包。

Windows下载解压后(.zip),直接双击 bin/seata-server.bat 就可以了。

集成 Nacos 配置中心

打开 Cloud 项目,找到文件夹 sql,这里要注意一下,如果你想和原项目一致,这里不需要做修改,同样的 Seata 配置的数据库也需要一致。

PS:访问 [集成 Nacos 配置中心],跟着教程走,由于我这边还未校验,所以暂时不贴出来了

记录 Seata 集成后序列化问题:

config.txt 加入以下配置:

client.undo.logSerialization=kryo

ruoyi-common-core 项目 pom.xml 加入依赖

<!-- 处理 Seata 序列化问题所需依赖 -->
<dependency>
    <groupId>com.esotericsoftware.kryo</groupId>
    <artifactId>kryo</artifactId>
    <version>2.24.0</version>
</dependency>
<dependency>
    <groupId>com.esotericsoftware</groupId>
    <artifactId>kryo</artifactId>
    <version>4.0.2</version>
</dependency>
<dependency>
    <groupId>de.javakaffee</groupId>
    <artifactId>kryo-serializers</artifactId>
    <version>0.44</version>
</dependency>

五、运行 SpringCloud 项目

进入 Nacos 管理系统中,配置必要的 yml 文件。

上面的图片中,Seate 原本设置的是 false ,因为我这边是集成了 Seate 的,所以我这里设置的 true。

上面图片中的数据库,ry-cloud 是基础数据库,在 Cloud 中的 sql 文件夹中。

这里的 quartz.sql 是可选的,看你自己的需求。

接下来继续配置 Nacos 管理系统中的 yml。

到此,Nacos 管理系统中的 yml 就配置完成,接下来我们配置 Cloud 中的文件。

到此,Cloud 项目也配置好了,可以使用 IDEA 直接运行项目了。

还没有结束,因为 Cloud 项目使用的是 SpringBoot-Vue,所以我们还需要编译/执行前端。

这里值得注意的是,如果执行失败了,建议查看下命令行权限。可使用“管理员权限”打开 CMD 重试。

# 进入项目目录
cd ruoyi-ui

# 安装依赖
npm install

# 强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。
npm install --registry=https://registry.npmmirror.com

# 本地开发 启动项目
npm run dev

到此,项目就成功运行了。

六、项目依赖分离配置

以 ruoyi-auth 项目为例,在 pom.xml 文件中 <build><plugins>粘贴</plugins></build>累加该内容即可

<!-- 上线部署 JAR启动分离依赖lib和配置 -->
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-jar-plugin</artifactId>
	<configuration>
		<archive>
			<manifest>
				<!--运行jar包时运行的主类,要求类全名-->
				<mainClass>com.ruoyi.auth.RuoYiAuthApplication</mainClass>
				<!-- 是否指定项目classpath下的依赖 -->
				<addClasspath>true</addClasspath>
				<!-- 指定依赖的时候声明前缀 -->
				<classpathPrefix>lib/</classpathPrefix>
				<!-- jar包不包含唯一版本标识 -->
				<useUniqueVersions>false</useUniqueVersions>
			</manifest>
			<manifestEntries>
				<Class-Path>config/</Class-Path>
			</manifestEntries>
		</archive>
		<!-- 输出位置 -->
		<outputDirectory>${project.build.directory}/separation</outputDirectory>
		<!-- 去掉不需要打进 jar 的配置文件 -->
		<excludes>
			<exclude>bootstrap.yml</exclude>
			<exclude>logback.xml</exclude>
		</excludes>
	</configuration>
</plugin>

<!-- 拷贝依赖 copy-dependencies -->
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-dependency-plugin</artifactId>
	<version>2.8</version>
	<executions>
		<execution>
			<id>copy-dependencies</id>
			<phase>package</phase>
			<goals>
				<goal>copy-dependencies</goal>
			</goals>
			<configuration>
				<outputDirectory>
					${project.build.directory}/separation/lib
				</outputDirectory>
			</configuration>
		</execution>
	</executions>
</plugin>

<!-- 拷贝资源文件 copy-resources -->
<plugin>
	<artifactId>maven-resources-plugin</artifactId>
	<executions>
		<execution>
			<id>copy-resources</id>
			<phase>package</phase>
			<goals>
				<goal>copy-resources</goal>
			</goals>
			<configuration>
				<resources>
					<resource>
						<directory>src/main/resources</directory>
						<!-- 指定参与构建的 resource -->
						<includes>
							<include>bootstrap.yml</include>
							<include>logback.xml</include>
						</includes>
					</resource>
				</resources>
				<outputDirectory>
					${project.build.directory}/separation/config
				</outputDirectory>
			</configuration>
		</execution>
	</executions>
</plugin>
  • 打赏
请选择打赏方式
  • 微信
  • 支付宝

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部