文章目录
- 修改项目名
- 替换模块、文件前缀
- 全局替换包名
- 局部替换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