android - 如果项目中有多个模块,如何缩短 Android Studio 中的包?
问题描述
我的应用项目由许多模块组成:
app
compnent_*
compnent_*
compnent_*
compnent_*
compnent_*
feature_*
feature_*
feature_*
... and so on
在 Android Studio 中,重命名应用包很容易
例如,我们可以轻松地从 更改com.bestapp.android
为com.amazingapp.android
它会建议自动重命名所有模块的所有文件/类/清单中的所有包,对开发人员来说一点也不头疼
但是如果我需要缩短包装,例如 from com.the.bestapp.android
tocom.bestapp.android
怎么办?
bestapp
我还尝试将“app”模块中的文件夹从the
一个文件夹拖放到另一个文件com
夹,它建议对所有模块执行此操作,我单击“是”,但它有效!
它将所有类(文件)移动到 app 模块,因此来自其他模块的所有文件都已移动到 app 模块。取消了此操作,我正在尝试寻找另一种解决方案。
我可以手动拖放所有文件夹,但文件夹太多
Mb 有没有为此创建的脚本?还是其他解决方案?
解决方案
行。我决定创建一个 Kotlin/JVM 程序来做到这一点:
import org.apache.commons.io.FileUtils
import org.apache.commons.io.filefilter.TrueFileFilter
import java.io.File
fun main() {
val projectDir = File("D:\\projects\\app_project")
val dirs = FileUtils.listFilesAndDirs(
projectDir,
TrueFileFilter.INSTANCE,
TrueFileFilter.INSTANCE
).filter {
it.absolutePath.endsWith("com\\the\\bestapp")
}
println(dirs.joinToString("\n"))
val dirsToDelete = dirs.map { it.parentFile }
dirs.forEach {
FileUtils.moveDirectoryToDirectory(it, it.parentFile.parentFile, false) // move "bestapp" to "com" folder
}
dirsToDelete.forEach {
it.delete()
}
}
所以现在它com.bestapp.android
代替com.the.bestapp.android
- 用于文件夹
效果很好
但不要忘记重命名文件(.java、.kt、.xml)中的包,这可以通过使用 Notepad++ 或 Android Studio 的“全部替换”文本功能轻松完成:
将所有com.the.bestapp.android
匹配的字符串替换为com.bestapp.android
推荐阅读
- python - Sklearn 线性回归损失函数与手动代码不匹配
- angular - 角度嵌套`ngFor`使用来自外循环的变量
- python - 类中的函数返回“无”
- python - 多次检查变量
- javascript - 如何刷新页面的 div 以从数据库加载更新的值?
- .net-core - 将使用 .NetCore C# 在 Raspberry pi 上录制的音频保存到 Wav 文件
- javascript - react-select 分离的重置按钮不适用于禁用属性
- r - 如何根据ggplot中的x和y值范围对点进行聚类
- python - 错误:使用 Flask-sqlalchmey 将 json.dumps() 输出保存到 sqlite 时可能不支持的类型
- php - 使用 PHP 在查询中从 MySQL 中的数据库更新 woocommerce 中产品的价格和库存时出现问题