web-dev-qa-db-ja.com

Eclipseでプロジェクトの名前を完全に変更する

Eclipseでリファクタリング->名前の変更を行い、プロジェクトの名前がEclipseで正常に変更されました。しかし、それをコピーしてフォルダに貼り付けると、古い名前が保持されます。

どうすれば完全に名前を変更できますか?

9
NiVeR

プロジェクトフォルダから.projectファイルを開き、その中の次の値を変更します。

enter image description here

その中のプロジェクト名に変更する必要があります。

別の方法、

プロジェクトエクスプローラーから古いプロジェクトをコピーし、そこに貼り付けます。新しい名前を要求し、新しい名前を付けて完了します。

16
Lucifer

1)パッケージを右クリック->リファクタリング->名前の変更。 [参照の更新]を選択し、サブパッケージの名前を変更します。

2)AndroidMenifest.xmlのパッケージ名を変更します

package=”com.example.new_package_name”

3)resources-> values-> string.xmlでapp_nameを "new_name"に変更します

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

それがうまくいくことを願っています!

2
Yogesh

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)

改善のためのコメントや提案は大歓迎です!

1
Jack

コピーして貼り付けるAndroidプロジェクトと新しいプロジェクトの作成は適切です。以下の手順に従ってください。

A. Eclipseを使用していて、最初にコピーするプロジェクトを開くだけの場合(コピーする必要のあるプロジェクトを開くのを忘れないでください)、次にクローン(コピー/貼り付け)を行いますAndroidプロジェクト。貼り付けると、Eclipseは新しいプロジェクト名を要求します。新しいプロジェクト名を付けてください。Eclipseのプロジェクト名とディレクトリは独立しているため、アプリケーション名とパッケージについては、次の手順でパッケージ名を変更できます。注:パッケージ名には2つのタイプがあります(マニフェストファイルに示されているメインパッケージと、すべてを保持するサブパッケージ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"
0
Josi