在Eclipse中完全重命名一个项目

15

我已经在Eclipse中完成了重构-> 重命名,并且项目在Eclipse中已成功更名。但是当我将其复制/粘贴到文件夹中时,它仍然保留旧名称。

我该如何完全重命名它?


1
你说的“当我将它复制/粘贴到文件夹中”是什么意思?你是指包名是旧的吗? - nKn
1
当我对我的应用程序进行一些备份版本时,我会将其复制并粘贴到我的备份文件夹中。包含该项目的文件夹名称保持不变。 - NiVeR
4个回答

22

打开项目文件夹中的.project文件,并更改其中以下值。

enter image description here

您需要更改其中的项目名称。

另一种方式是,从“项目资源管理器”中复制旧项目,并将其粘贴到此处,它会要求输入新名称,输入新名称即可完成。


1
名称已更改为新名称,但文件夹仍保留旧名称。 - NiVeR
3
那是因为您没有重命名文件夹。从项目资源管理器中复制旧项目,然后粘贴到新位置,它会要求您输入新名称,输入新名称即可完成。 - Lucifer
看起来是合理的事情 xD - NiVeR
好的,如果你遇到任何与Android相关的错误,请联系我,我一定会尽力在闲暇时间帮助你 :) - Lucifer
在任何我的帖子下面或这里留言,就完成了。 - Lucifer
显示剩余5条评论

3

1) 右键单击您的包 -> 重构 -> 重命名。选择更新引用和重命名子包。

2) 在AndroidMenifest.xml中更改packagename。

package=”com.example.new_package_name”

3)在resources->values->string.xml中,将app_name更改为"new_name"

<string name="app_name">"new_name"</string>

希望这能够起作用!

1
TrueStudio也是基于Eclipse的,它可能以类似的方式工作。但是重构项目名称无法正常工作。 我克隆一个项目到另一个项目的方式是在主文件夹上使用Ctrl-C / Ctrl-V,然后将新文件夹重命名为所需名称。现在我们只需要更改目录名称和一些文件名称。然后,我们需要修改一些文件的内容。之后,该项目就可以在TrueStudio中打开。
简而言之,请参见下面的示例:
Rename Project:
Copy the project directory
“Nucleo-H743ZI_Jack_01-”
“Nucleo-H743ZI_Jack_010 - Copy”

Rename it to the new name
“Nucleo-H743ZI_Jack_010 - Copy”
“Nucleo-H743ZI_Jack_011_tcp”

Rename this directory
“Nucleo-H743ZI_Jack_011_tcp\TrueSTUDIO\Nucleo-H743ZI_Jack_010”
“Nucleo-H743ZI_Jack_011_tcp\TrueSTUDIO\Nucleo-H743ZI_Jack_011_tcp”

Rename these files
“Nucleo-H743ZI_Jack_011_tcp\Nucleo-H743ZI_Jack_010.ioc”
“Nucleo-H743ZI_Jack_011_tcp\Nucleo-H743ZI_Jack_011_tcp.ioc”
“Nucleo-H743ZI_Jack_011_tcp\TrueSTUDIO\Nucleo-H743ZI_Jack_011_tcp\Nucleo-H743ZI_Jack_010.elf.launch”
“Nucleo-H743ZI_Jack_011_tcp\TrueSTUDIO\Nucleo-H743ZI_Jack_011_tcp\Nucleo-H743ZI_Jack_011_tcp.elf.launch”

Change these files
“Nucleo-H743ZI_Jack_011_tcp\.mxproject” (3 occurrences)
“Nucleo-H743ZI_Jack_011_tcp\Nucleo-H743ZI_Jack_011_tcp.ioc” (2 occurrences)
“Nucleo-H743ZI_Jack_011_tcp\TrueSTUDIO\Nucleo-H743ZI_Jack_011_tcp\.cproject” (3 occurrences)
“Nucleo-H743ZI_Jack_011_tcp\TrueSTUDIO\Nucleo-H743ZI_Jack_011_tcp\.project” (1 occurrence)
“Nucleo-H743ZI_Jack_011_tcp\TrueSTUDIO\Nucleo-H743ZI_Jack_011_tcp\Nucleo-H743ZI_Jack_011_tcp.elf.launch” (5 occurrences)

Note: also get rid of absolute paths in Nucleo-H743ZI_Jack_011_tcp\TrueSTUDIO\Nucleo-H743ZI_Jack_011_tcp\.project

Open project
File -> Open Project from File System…
Directory: “Nucleo-H743ZI_Jack_011_tcp\TrueSTUDIO\Nucleo-H743ZI_Jack_011_tcp”
Click OK and Finish

在项目的根目录中放置一个Python脚本可以完成此操作:
chproj.py

# Changed the name of an TrueStudio project
import os
import sys

def inplace_change(filename, old_string, new_string):
    # Safely read the input filename using 'with'
    with open(filename) as f:
        s = f.read()
        if old_string not in s:
            print '"{old_string}" not found in {filename}.'.format(**locals())
            return

    # Safely write the changed content, if found in the file
    with open(filename, 'w') as f:
        print 'Changing "{old_string}" to "{new_string}" in {filename}'.format(**locals())
        s = s.replace(old_string, new_string)
        f.write(s)

# Getting the current work directory (cwd)
dir_abs = os.getcwd()
dir_abs_split=dir_abs.split('\\')
n = len(dir_abs_split)
dst_dir = dir_abs_split[n-1]
new_name = dst_dir
print dir_abs

# Get original name
#src_dir = os.listdir(ts_dir)[0]
#old_name = src_dir
#print "old_name: " + old_name

mxproject_filename = dir_abs + "\.mxproject"
with open(mxproject_filename) as f:
    content = f.readlines()
second_line = content[1]
#print second_line
second_line_split=second_line.split('/')
n=len(second_line_split)
old_name = second_line_split[n-2]
print "old_name: " + old_name
print "new_name: " + new_name

ioc_filename_old = dir_abs + "\\" + old_name + ".ioc"
ioc_filename_new = dir_abs + "\\" + new_name + ".ioc"

ts_dir = dir_abs + "\TrueSTUDIO"

ts_name_old = ts_dir + "\\" + old_name
ts_name_new = ts_dir + "\\" + new_name

elf_launch_old = ts_dir + "\\" + new_name + "\\" + old_name + ".elf.launch"
elf_launch_new = ts_dir + "\\" + new_name + "\\" + new_name + ".elf.launch"

cproject = ts_dir + "\\" +  new_name + "\.cproject"
project = ts_dir + "\\" +  new_name + "\.project"

print "Change path in " + project

new_path = "PARENT-2-PROJECT_LOC"
old_path = dir_abs.replace("\\", "/")
old_path = old_path.replace("c:", "C:")
print old_path
print new_path

if os.path.isfile(project):
    # file exists
    print "Modify file " + project
    inplace_change(project, old_path, new_path)

if (new_name == old_name):
    print "Nothing else to change"
    sys.exit(0)


print "Rename directories and files:"

#os.rename(src, dst)
if os.path.isdir(ts_name_old):
    # dir exists
    print "Rename directory " + ts_name_old + " to " + ts_name_new
    os.rename(ts_name_old, ts_name_new)

#os.rename(src, dst)
if os.path.isfile(ioc_filename_old):
    # file exists
    print "Rename file " + ioc_filename_old + " to " + ioc_filename_new
    os.rename(ioc_filename_old, ioc_filename_new)

if os.path.isfile(elf_launch_old):
    # file exists
    print "Rename file " + elf_launch_old + " to " + elf_launch_new
    os.rename(elf_launch_old, elf_launch_new)

print "Replace strings in files:"

if os.path.isfile(cproject):
    # file exists
    print "Modify file " + cproject
    inplace_change(cproject, old_name, new_name)

if os.path.isfile(project):
    # file exists
    print "Modify file " + project
    inplace_change(project, old_name, new_name)
    inplace_change(project, old_path, new_path)

if os.path.isfile(ioc_filename_new):
    # file exists
    print "Modify file " + ioc_filename_new
    inplace_change(ioc_filename_new, old_name, new_name)

if os.path.isfile(elf_launch_new):
    # file exists
    print "Modify file " + elf_launch_new
    inplace_change(elf_launch_new, old_name, new_name)

if os.path.isfile(mxproject_filename):
    # file exists
    print "Modify file " + mxproject_filename
    inplace_change(mxproject_filename, old_name, new_name)

欢迎提出任何关于改进的评论或建议!

以上可能不适用,它是针对STM32的。 - Jack

0

复制并粘贴Android项目并创建一个新项目非常方便。请按照以下步骤操作:

A. 如果您正在使用Eclipse,您需要做的第一件事是打开要复制的项目(不要忘记打开需要复制的项目),然后在Eclipse左侧的资源管理器窗口中克隆(复制/粘贴)您的Android项目。 当您粘贴时,Eclipse会要求您输入新项目名称。给它一个新的项目名称。 由于Eclipse项目名称和目录与应用程序名称和包无关, 下面的步骤将帮助您如何更改包名称。注意:有两种类型的包名称。 (在清单文件中指定的主包和包含所有Java文件的子包)

1. After you get done above step, to change Application package name(main package), follow the following steps:
    First right click your project
    Then go to "Android tools"
    Then select "Rename Application package"
    Enter a new name in a dialogue window , and hit OK.
    Then It will show you in which part of your project the Application name will be changed. It will show you that
    the Application name will be changed in manifest, and in most relevant Java files. Hit "OK"
    YOU DONE in this part, but make sure you rebuild your project to take effect. 
    
    To rebuild your project, go to ""project" >>> "Clean" >>>> select a Project from a projects list, and hit "OK"
    Finaly, you can run your new project. 
    
2.  To change src package(sub package) names of packages within Src folder follow the following steps:
    First you need to create new package: (src > right click > new > package).

    Example of creating package: com.myCompany.executable 

    Follow these steps to move the Java files from the old that has already been copied package in part A to your new package.

    Select the Java files within that old package
    Right click that java files
    select "Refactor" option
    select "Move" option
    Select your preferred package from the list of packages in a dialogue window. Most probably you need to select the new one you just created and hit "OK"

对于那些使用Android Studio的人,点击这里就可以轻松完成。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接