idea 旧项目替换成新项目(项目名称,模块,代码)

文章目录

  • 修改项目名
  • 替换模块、文件前缀
  • 全局替换包名
  • 局部替换xml、yml等其他文件

修改项目名

右击项目名称->Refactor->Rename(shift+F6)
在这里插入图片描述

ctrl+alt+shift+s
在这里插入图片描述

替换模块、文件前缀

git bash执行如下脚本

#/bin/bash  
# 单目录替换 for f in old-prefix*; do mv "$f" "${f/old-prefix/new-prefix}"; done
# 定义要修改的文件夹、文件前缀以及项目所在目录
old_prefix="xx-"  
new_prefix="MyProject-"  
targetDir="/c/Users/admin/ideaProject/项目根目录"
old_file_prefix="xx"  
new_file_prefix="MyClass"   

# 该对象数组用于倒序处理非空目录重命名  
no_empty_old=()
no_empty_new=()
no_empty_file=()

# 递归函数重命名当前目录下所有子文件夹前缀
rename_folders() {  
    local dir=$1  
    echo $1
    for file in "$dir"/*; do  
        # 如果是目录(替换项目模块前缀)
        if [ -d $file ] && [ "$(ls -A $file)" ]; then
            # 非空目录
            local new_name="${file##*/}"   #原文件名称
            no_empty_file+=("$new_name") 
            no_empty_old+=("$file") 
            new_name="${new_prefix}${new_name#$old_prefix}" 
            no_empty_new+=("$dir/$new_name") 
            
            rename_folders "$file"  
        else
            if [ -d $file ] ; then
                # 空目录
                local new_name="${file##*/}"  
                echo "$new_name"
                # 包含才删除
                if [[ $new_name == "$old_prefix"* ]]; then
                    new_name="${new_prefix}${new_name#$old_prefix}"  
                    echo "$new_name"
                    mv "$file" "$dir/$new_name"  
                fi
            else
            	#文件
                local new_name="${file##*/}"  
                if [[ $new_name == "$old_file_prefix"* ]]; then
                    new_name="${new_file_prefix}${new_name#$old_file_prefix}"  
                    mv "$file" "$dir/$new_name"  
                fi
            fi
        fi
    done  
}  
  
rename_folders "$targetDir"

# 处理非空目录重命名
for ((i=${#no_empty_old[@]}-1; i>=0; i--)); do  
    echo "oldDir:${no_empty_old[i]},newDir:${no_empty_new[i]} "  
    new_name=${no_empty_file[i]}
    if [[ $new_name == "$old_prefix"* ]]; then
        new_name="${new_prefix}${new_name#$old_prefix}"  
        echo "$new_name"
        mv ${no_empty_old[i]} ${no_empty_new[i]}
    fi
done
  

全局替换包名

全局选中包名替换:ctrl+shift+r
过滤*.java文件

package com.xxx

在这里插入图片描述

局部替换xml、yml等其他文件

涉及项目名称的字符串进行替换

当前文件中按下替换快捷键:ctrl+r

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

语音机器人的两种常见业务场景

第一个业务场景 之前写过一篇语音机器人是真人录音好,还是TTS转语音更好的文章。今天再来说一说TTS一个很细微的场景。 假设一句话 这里是*****银行委托机构,您在*****银行的信用卡长期逾期至今仍未依照约定履行还款义务,为避免逃废债给您…

计算机网络:网络层

0 本节主要内容 问题描述 解决思路 1 问题描述 两大问题(重点,也是难点): 地址管理;路由选择。 1.1 子问题1:地址管理 网络上的这些主机和节点都需要使用一种规则来区分,就相当于是一种身…

【javaWeb】HTTP协议

HTTP (全称为 “超文本传输协议”) 是一种应用非常广泛的应用层协议 HTTP 是一个文本格式的协议. 可以通过 Chrome 开发者工具或者 Fiddler 抓包, 分析 HTTP 请求/响应的细节. 上图是通过Fiddler对访问百度搜索页时抓取的一个http协议的包。 观察抓包结果,可以看到,当前 http…

windows 下gcc编译的软件获取管理员权限

每次运行程序的时候需要管理员权限,一般可以右键管理员模式运行,或者在属性里设置默认管理员权限运行。但是当需要移动执行文件的位置后,必须重新设置管理员权限。这种操作相对来说麻烦,有没有一种办法直接在exe中声明呢&#xff…

vue3父子组件通过$parent与ref通信

父组件 <template><div><h1>ref与$parents父子组件通信 {{ parentMoney }}</h1><button click"handler">点击我子组件的值会减20</button><hr><child ref"children"></child></div> </te…

【机器学习】迁移学习

迁移学习&#xff1a;给定一个有标记的源域和一个无标记的目标域。这两个领域的数据分布不同。迁移学习的目的就是要借助源域的知识&#xff0c;来学习目标域的知识(标签)。或是指基于源域数据和目标域数据、源任务和目标任务之间的相似性&#xff0c;利用在源领域中学习到的知…

redis 集群

redis-cluster集群&#xff1a; redis3.0引入的分布式存储方案 集群由多个node节点组成&#xff0c;redis数据是分布在这写节点之中。 在集群之中分为主节点和从节点。 集群自带哨兵模式 集群模式当中&#xff0c;主从一一对应&#xff0c;数据的写入和读取于主从模式一样&a…

使用opencv将8位图像raw数据转成bmp文件的方法

作者&#xff1a;朱金灿 来源&#xff1a;clever101的专栏 为什么大多数人学不会人工智能编程&#xff1f;>>> 这里说的图像raw数据是只包含图像数据的缓存。主要使用了cv::imencode接口将 cv::Mat转化为图像缓存。 #include <opencv2/opencv.hpp>/* 生成一幅…

【单调栈】最大宽度坡

public int maxWidthRamp(int[] nums) {/* 此方法思路正确&#xff0c;但超时int n nums.length;Deque<Integer> stack;int max 0;for (int i 0; i < n; i) {stack new LinkedList<>();stack.push(nums[i]);int j i 1;while (j < n) {stack.push(nums…

Banana Pi最新的路由器板BPI-R4上市销售,基于MediaTek MT7988A

Banana Pi 发布了一款新的路由器板 Banana Pi BPI-R4&#xff0c;基于配备四核 Arm CPU 的 MediaTek MT7988A SoC。该板不仅仅是Raspberry Pi 的另一个替代品&#xff0c;而且是用于家庭网络和自动化的设备。 Banana Pi BPI-R4 的外形尺寸比单板计算机更像网络设备。对于那些希…

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux 进程管理 5》(9)

《Linux操作系统原理分析之Linux 进程管理 5》&#xff08;9&#xff09; 4 Linux 进程管理4.5 Linux 信号4.5.1 信号的作用和种类1.信号机制2.信号种类 4.5.2 信号的处理4.5.3 信号处理函数1&#xff0e;数据结构2&#xff0e; 处理函数 signal3&#xff0e;程序例 4 Linux 进…

School training competition ( Second )

A. Medium Number 链接 : Problem - 1760A - Codeforces 就是求三个数的中位数 : #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \nusing namespace std; typedef long long LL; const int N 2e510;inline void …

详解混合整数二次规划 (MIQP) 投资组合优化问题--附Matlab和Python实现

&#x1f517; 运行环境&#xff1a;Matlab、Python &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x1f497; 大家好&#x1f917;&am…

新手用什么工具制作电子画册?新分享

随着数字化时代的到来&#xff0c;电子画册已成为企业宣传、展示产品的重要手段。对于新手来说&#xff0c;选择一款合适的工具是关键。今天&#xff0c;为大家推荐一款适合新手制作的电子画册工具&#xff0c;让你轻松制作出精美画册。 工具推荐&#xff1a;FLBOOK在线制作电子…

快速开发出一个公司网站

问题描述&#xff1a;参加一个创业活动&#xff0c;小组要求做一个公司网站&#xff0c;简单介绍一下自己公司的业务。需要快速完成。 问题解决&#xff1a;从网上找一个网站模板&#xff0c;类似于做PPT&#xff0c;搭建一个网站即可。 这里推荐的是京美建站、wordpress、he…

【JAVA学习笔记】72 - 满汉楼 - 餐饮管理系统

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter26 一、需求说明 满汉楼项目功能多&#xff0c;界面复杂&#xff0c;涉及到复杂的awt和swing技术和事件编程&#xff0c;做如下调整: 1.去掉界面和事件处理(工作中使用很少)&#xff0c;使…

7000字+24张图带你彻底弄懂线程池

大家好&#xff0c;我是三友。今天跟大家聊一聊无论是在工作中常用还是在面试中常问的线程池&#xff0c;通过画图的方式来彻底弄懂线程池的工作原理&#xff0c;以及在实际项目中该如何自定义适合业务的线程池。 一、什么是线程池 线程池其实是一种池化的技术的实现&#xff0…

python-爬虫(可直接使用)

爬虫&#xff08;Web Scraping&#xff09;是指通过编程自动化地获取互联网上的信息的过程。爬虫的目的通常是从网页中抓取数据&#xff0c;进行数据分析、处理或展示。以下是爬虫的基本流程和一些重要的概念&#xff1a; 爬虫基本流程&#xff1a; 确定目标&#xff1a; 确定要…

Adversarial Attack and Defense on Graph Data: A Survey(2022 IEEE Trans)

Adversarial Attack and Defense on Graph Data: A Survey----《图数据的对抗性攻击和防御&#xff1a;综述》 图对抗攻击论文数据库&#xff1a; https://github.com/safe-graph/graph-adversarial-learning-literature 摘要 深度神经网络&#xff08;DNN&#xff09;已广泛应…