2011-01-21 2 views
2

Я написал пакет в eclipse (пакет Java/Android, то есть). Теперь я хочу сделать еще один пакет, который является небольшим изменением оригинала. Мой план состоит в том, чтобы скопировать и вставить каждый .java-файл в новый пакет и изменить пакет импорта .somename на имя нового пакета и перейти от него. Есть лучший способ сделать это?Дубликат пакета в Eclipse

ответ

3

Выберите пакет в проводнике проекта, нажмите Ctrl + C, а затем Ctrl + V, Eclipse запросит предупреждение о конфликте имени пакета и попросит ввести новое имя пакета. Просто введите его, и Eclipse будет переупаковать все скопированные классы соответственно.


Unrelated к проблеме, есть дизайн запах в вашем подходе :)

+0

Причина, по которой я делаю это, я сделал приложение для Android и выставил его на рынок. Теперь я хочу поставить бесплатную демо-версию, а некоторые функции удалены. Я решил, что самый простой способ сделать это - просто скопировать все и изменить несколько вещей. –

+0

Достаточно честный. Помог ли ответ? – BalusC

+1

Скопировать пасту не является хорошей практикой дизайна? – fastcodejava

0

Как насчет расширить классы, которые вы хотите изменить? таким образом, вы можете использовать два варианта в одном пакете

0

В зависимости от того, насколько «незначительные изменения» действительно существуют, вы можете сохранить его как один пакет и обработать различия. Причины, по которым вы, возможно, не захотите это сделать, это то, что дублирование всего пакета только для небольших изменений не очень чисто. Дублированный код - это запах кода и может вызвать головные боли в будущем, если ошибка обнаружена в одном пакете и должна быть исправлена ​​также в других разделах кода.

Чтобы ответить на вопрос, Eclipse должен обладать функциональностью, чтобы скопировать весь пакет и вставить его обратно в проект. Вам придется переименовать один из пакетов, чтобы иметь уникальное имя пакета.

1

В комментарии к ответу вы указали причину, по которой вы хотите сделать это: «Теперь я хочу поставить бесплатную демоверсию, с некоторыми функциональными возможностями».

Вместо того, чтобы копировать весь код в другой пакет, я хотел бы использовать только одну базу кода и использовать параметр build, чтобы указать, строите ли вы свободную или коммерческую версию. Классы и конфигурация (например, весна), которые включены в сборку, могут затем зависеть от этого параметра.

Дублирование кодовой базы может показаться более простой альтернативой, но будет дублировать вашу работу в долгосрочной перспективе при ее сохранении и увеличить риск ошибок.

Смежные вопросы