基于若依框架的依赖包开发

目录

 一、创建中间分支

二、基础项目打包

1.修改父pom.xml

1)修改build插件

2)添加打包后的发布配置  

2、修改ruoyi-admin的pom.xml

3、打包并同步到私服

4、提交修改后的代码

三、新项目引入基础项目

1、新分支创建

2、修改工程

        1)修改父pom.xml

2)修改xxx-admin下的pom.xml

3)修改xxx-custom下的pom.xml

4)调整demo-admin结构

5)调整demo-custom结构

四、构建项目

五、运行后端项目

六、运行前端项目

七、实现成果

八、基于若依打包出现的问题

1、Failed to determine suitable jdbc url

2、访问若依原有controller接口报404


 一、创建中间分支

#克隆个人仓库分支到本地

git clone  https://gitee.com/woaichifang/ruoyi-framework.git

#切换到本地仓库目录

cd ruoyi-framework/

#创建RuoYi-Vue-Ori分支

git checkout -b RuoYi-Vue-Ori

#设置若依的远程仓库地址

git remote add origin_ruoyi  https://gitee.com/y_project/RuoYi-Vue.git

#查看远程分支,可以发现有两个

git remote -v

#从若依远程分支拉取代码

git pull origin_ruoyi master --allow-unrelated-histories

从上图可以发现拉取下来有冲突。我们这里以若依远程分支为准

#查看git状态,可以看到冲突有三个,我们这里以若依远程分支为准

git status

#将冲突添加到提交列表

git add *

git add .gitignore

git commit -m "冲突解决"

#提交代码到个人分支

git push --set-upstream origin RuoYi-Vue-Ori

 

#尝试从若依远程分支拉取代码,看是否会报错,如果不报错就成功了。

git pull origin_ruoyi master

以上为中间分支的创建过程,该分支的作用是从若依远程分支拉取最新的代码,同步到个人仓库分支,起到保证本地代码与若依同步的作用。

#打包分支

git checkout -b RuoYi-Vue-Deploy

#中间分支的代码提交到打包分支

git push --set-upstream origin RuoYi-Vue-Deploy

二、基础项目打包

将若依项目框架打成jar包提供给新项目使用,需用idea先导入RuoYi-Vue-Deploy分支的代码,再修改如下几点。

  • 1.修改父pom.xml

       1)修改build插件

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
                <encoding>${project.build.sourceEncoding}</encoding>
            </configuration>
        </plugin>
        <!--源码-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
                <execution>
                    <id>attach-sources</id>
                    <phase>verify</phase>
                    <goals>
                        <goal>jar-no-fork</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

       2)添加打包后的发布配置  

       添加distributionManagement,url修改为自己的地址

<distributionManagement>
    <repository>
        <id>rdc-releases</id>
        <url>https://packages.aliyun.com/maven/repository/2223685-release-ehwz7c/</url>
    </repository>
<!--快照发布地址-->
    <snapshotRepository>
        <id>rdc-snapshots</id>
        <url>https://packages.aliyun.com/maven/repository/2223685-snapshot-erQrDK/</url>
    </snapshotRepository>

我这里使用的是阿里的云效私服,具体配置步骤查看上一篇《云效私服-搭建自己的maven仓库》。如只要将打包后的jar放到本地,可以将url替换为file:<本地目录> 

  • 2、修改ruoyi-admin的pom.xml

      替换ruoyi-admin的pom.xml下的spring-boot-maven-plugin

 

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
        <source>${java.version}</source>
        <target>${java.version}</target>
        <encoding>${project.build.sourceEncoding}</encoding>
    </configuration>
</plugin>

注:替换的原因如下:

使用spring-boot-maven-plugin在打包,会将包的结构变成如下格式,该格式在引入依赖包的情况下无法被识别到,比如ruoyi-admin里面有controller层,如果是该格式,在新项目中会无法识别到。

改成maven-compiler-plugin打包后结构如下: 

  • 3、打包并同步到私服

        使用idea打包,点击deploy

或者使用命令:

mvn clean install org.apache.maven.plugins:maven-deploy-plugin:2.8:deploy -DskipTests

推送成功后,进入私服平台查看,如下图,推送成功

  • 4、提交修改后的代码

         git status

        

        git add * 

 git commit -m "提交打包配置"

git push origin RuoYi-Vue-Deploy

 

  • 三、新项目引入基础项目

  • 1、新分支创建

创建一个new-project的目录,在该目录下克隆若依代码

git clone https://gitee.com/woaichifang/ruoyi-framework.git

#切换到RuoYi-Vue-Ori分支

git checkout RuoYi-Vue-Ori

#创建新的分支ruoyi-demo

git checkout -b ruoyi-demo

删除掉下图所示包。

  • 2、修改工程

ruoyi-admin为demo-admin,修改ruoyi-system为demo-custom

1)修改父pom.xml

 修改如下:

新增

<demo.version>1.0.0</demo.version>

新增依赖

<!--若依原web入口-->
<dependency>
	<groupId>com.ruoyi</groupId>
	<artifactId>ruoyi-admin</artifactId>
	<version>${ruoyi.version}</version>
</dependency>

<!--个性化开发-业务逻辑-->
<dependency>
	<groupId>com.demo</groupId>
	<artifactId>demo-custom</artifactId>
	<version>${demo.version}</version>
</dependency>

 删除以下模块

 新增以下内容:

	<modules>
        <module>demo-admin</module>
        <module>demo-custom</module>
    </modules>

 2)修改xxx-admin下的pom.xml

修改如下:

添加ruoyi-admin、demo-custom包依赖

 

<!--若依原web入口-->
<dependency>
	<groupId>com.ruoyi</groupId>
	<artifactId>ruoyi-admin</artifactId>
</dependency>
<!--个性化开发-业务逻辑-->
<dependency>
	<groupId>com.demo</groupId>
	<artifactId>demo-custom</artifactId>
</dependency>

3)修改xxx-custom下的pom.xml

 

4)调整demo-admin结构

A、删除demo-admin多余的包,保留resources下的文件,重命名RuoYiApplication为DemoApplication、RuoYiServletInitializer为DemoServletInitializer。

B、DemoApplication的添加包扫描,如果不添加,jar包中的service、controller等组件都扫描不到。

 @ComponentScan(basePackages = {"com.ruoyi.*","com.demo.*"})

C、修改logback.xml,增加个性化项目的日志打印 

D、修改application.yml 

 

 

5)调整demo-custom结构

 删除demo-custom下多余的包,结构变更如下

 

  • 四、构建项目

  • 五、运行后端项目

 

  • 六、运行前端项目

执行命令:

npm install

npm run dev

 

运行项目报错,: error:0308010C:digital envelope routines::unsupported

出现这个错误是因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。

在node.js V17以前一些可以正常运行的的应用程序,但是在 V17 版本可能会抛出异常

解决方式如下:

找到package.json文件,按下图修改:

 

增加  set NODE_OPTIONS=--openssl-legacy-provider &

修改后,重新运行即可。

  • 七、实现成果

 基于若依框架打包的新项目运行成功,结构简洁清爽。

  • 八、基于若依打包出现的问题

  • 1、Failed to determine suitable jdbc url

出现该问题,是因为ruoyi-framework包里面的配置没有被扫描到,导致新工程运行时使用了springboot的默认配置,会去扫描spring.datasource.url的配置,但是ruoyi使用的是主从数据源

 

排查步骤:

1)@SpringBootApplication 添加exclude = {DataSourceAutoConfiguration.class}

 

依然无效。

2)怀疑是ruoyi-framework下DruidConfig.java配置不生效,在Application启动类上增加扫描注解

@ComponentScan(basePackages = {"com.ruoyi.*","com.demo.*"})

前一个为若依包路径,后一个为新工程包路径

 运行后,启动正常。

2、访问若依原有controller接口报404

1)查看是否有包扫描

 若无,增加后运行查看是否正常。若有按第二步。

2)查看ruoyi-admin的依赖包

解压后是否为如下图:

如果是,那么ruiyi-admin在打包是使用spring-boot-maven-plugin打包。 

使用spring-boot-maven-plugin在打包,会将包的结构变成如下格式,该格式在引入依赖包的情况下无法被识别到,比如ruoyi-admin里面有controller层,如果是该格式,在新项目中会无法识别到。

 

 改成maven-compiler-plugin打包后结构如下:

 

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值