renren-fast更改项目名,启动类类名和包名记录

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

一、问题?

最近在利用renren-fast框架写项目,可是,看着项目名也是renren-fast就挺别扭,接下来记录更改项目名和包名的具体操作

二、步骤

1.更改项目名

  • 在idea中修改项目名为新的项目名gdou-cpm,这张截图没截到

  • 打开系统项目的目录,直接在项目目录下重命名为新的项目名gdou-cpm,结果如下

在这里插入图片描述

  • 修改pom.xml文件
<modelVersion>4.0.0</modelVersion>
	<groupId>io.renren</groupId>           <!--修改为新的分组-->
	<artifactId>renren-fast</artifactId>   <!--修改项目名为新的项目名称-->
	<version>3.0.0</version>
	<packaging>jar</packaging>
	<description>renren-fast</description>  <!--修改为新的项目名称即可-->
  • description:注释
<xs:documentation source="description">
            A detailed description of the project, used by Maven whenever it needs to describe the project,
            such as on the web site. While this element can be specified as CDATA to enable
            the use of HTML tags within the description, it is discouraged to allow plain text representation.
            If you need to modify the index page of the generated web site, you are able to specify your own instead
            of adjusting this text.
</xs:documentation>
  • 其实现在就把项目名称改完了,其实我们不止为了改项目名,还想改启动类的名称和包名
  • 修改启动类名称,注意不能在类上直接修改类的名称。
    在这里插入图片描述
  • 应该在这个类文件上修改,这样启动类类名自动更改为新的类名【保证文件名称和启动类类名一样】,如图:
    在这里插入图片描述
    在这里插入图片描述
  • 修改后直接Refactor即可
  • 修改包名,因为几乎每个文件都有导入对应的包,所以更改包名的操作成本比较高,修改包名后,几乎每个文件都要修改,但是我们通过修改包名,idea会把项目中用到这个包的名称自动更改为新的名称(idea强大之处)。
  • 点击修改包名
    在这里插入图片描述

-过程如图所示在这里插入图片描述

  • 结果就是idea帮我们自动更改包名,如图,舒服吧(测试类得包名同理)
    在这里插入图片描述

  • 别高兴得太早,这里还远远不够,因为我们得配置类在配置的时候,有时候会写包名,而且有些包名是用字符串("包名 ")包起来的,如图:

  • application.yml文件下
    在这里插入图片描述

  • 不止这么多的,所以用全局替换

  • ctrl+shift+R,弹出如下页面:
    在这里插入图片描述

  • 一看还有很多文件没改,所以就替换它,再仔细看看

在这里插入图片描述

  • 直接全局替换,四种文件都要改,下面截图按错了,得按replace all。

  • 在这里插入图片描述

  • 这时候项目会不会元气大伤,赶紧测试一下,果然出错,看了看下面两张图,从第二张图可以看出,还有一个地方得io.renren没改掉,这个是定时任务这一块,如果你之前运行过项目可能就会报下面的错。

在这里插入图片描述
在这里插入图片描述

  • 我的解决方案就是重新导入一遍renren-fast的数据库,然后把ScheduleConfig.class这个文件两个地方,如下:
/**
 * Copyright (c) 2016-2019 人人开源 All rights reserved.
 *
 * https://www.renren.io
 *
 * 版权所有,侵权必究!
 */

package gdou.cpm.modules.job.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;

import javax.sql.DataSource;
import java.util.Properties;

/**
 * 定时任务配置
 *
 * @author Mark sunlightcs@gmail.com
 */
@Configuration
public class ScheduleConfig {

    @Bean
    public SchedulerFactoryBean schedulerFactoryBean(DataSource dataSource) {
        SchedulerFactoryBean factory = new SchedulerFactoryBean();
        factory.setDataSource(dataSource);

        //quartz参数
        Properties prop = new Properties();
        prop.put("org.quartz.scheduler.instanceName", "GdouCPMScheduler");  //RenrenScheduler--->GdouCPMScheduler
        prop.put("org.quartz.scheduler.instanceId", "AUTO");
        //线程池配置
        prop.put("org.quartz.threadPool.class", "org.quartz.simpl.SimpleThreadPool");
        prop.put("org.quartz.threadPool.threadCount", "20");
        prop.put("org.quartz.threadPool.threadPriority", "5");
        //JobStore配置
        prop.put("org.quartz.jobStore.class", "org.quartz.impl.jdbcjobstore.JobStoreTX");
        //集群配置
        prop.put("org.quartz.jobStore.isClustered", "true");
        prop.put("org.quartz.jobStore.clusterCheckinInterval", "15000");
        prop.put("org.quartz.jobStore.maxMisfiresToHandleAtATime", "1");

        prop.put("org.quartz.jobStore.misfireThreshold", "12000");
        prop.put("org.quartz.jobStore.tablePrefix", "QRTZ_");
        prop.put("org.quartz.jobStore.selectWithLockSQL", "SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?");

        //PostgreSQL数据库,需要打开此注释
        //prop.put("org.quartz.jobStore.driverDelegateClass", "org.quartz.impl.jdbcjobstore.PostgreSQLDelegate");

        factory.setQuartzProperties(prop);

        factory.setSchedulerName("GdouCPMScheduler");  //RenrenScheduler--->GdouCPMScheduler
        //延时启动
        factory.setStartupDelay(30);
        factory.setApplicationContextSchedulerContextKey("applicationContextKey");
        //可选,QuartzScheduler 启动时更新己存在的Job,这样就不用每次修改targetObject后删除qrtz_job_details表对应记录了
        factory.setOverwriteExistingJobs(true);
        //设置自动启动,默认为true
        factory.setAutoStartup(true);

        return factory;
    }
}

  • 再次运行项目就不会报错了

2.总结

  • 改这些名称是挺麻烦的事情,所以记录如下:希望能给你帮助。
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值