2015-12-02 2 views
0

Уже было задано несколько похожих вопросов, но я не нашел достаточно удовлетворительного и рабочего решения. В локальной файловой системе у меня есть два проекта Eclipse, структуры которых одинаковы, и я хочу, чтобы некоторые пакеты были разделены между ними. И:
- Я не хочу иметь несколько копий исходных файлов по очевидным причинам;
- Мне не очень нравится идея добавления одного проекта в путь сборки другого проекта, потому что это потребует, чтобы оба они были открыты все время и могли привести к беспорядку и непреднамеренным изменениям в другом проект, который будет трудно найти и исправить после этого;
- Я не хотел бы снимать общие пакеты в третий проект, я хочу, чтобы проекты были полностью автономными;
- попытки связать папки с исходными файлами из одного проекта в качестве виртуальных папок в другой проект приводят к невозможности присвоить им правильные имена пакетов (такие папки не формируют пакеты и утверждения компилятора, которые The declared package "com.example.package" does not match the expected package "")
Что такое правильный способ справиться с задачей?Как поделиться исходными папками по проектам в Eclipse?

+4

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

+1

У вас есть несколько хороших вариантов «поделиться» источником, пакетами и/или целыми проектами в Eclipse. Например: [Eclipse - Связанный пакет?] (Http://stackoverflow.com/questions/8034560/eclipse-linked-package) – paulsm4

+0

@Gergely Bacso - Да, вы правы. Рассмотрев различные аспекты ситуации, я в конце концов последовал твоему предложению, хотя нашел способ связать источники из другого проекта. –

ответ

1

Решение, которое я нашел приемлемым, - это связать один проект с другим как связанную исходную папку (свойства проекта -> путь сборки Java -> вкладка Источник -> источник ссылки). Место привязанной папки должно быть корнем источника связанного проекта (...\project1\src\ или ...\project1\, в зависимости от связанных настроек проекта), где «com», «org» и т. Д. Живут; имя папки может быть любым, что вам нравится.
В моем случае мне нужно было частично воспроизвести структуру пакета старого (связанного) проекта и заменить некоторые старые пакеты новыми пакетами (расположенными в текущем проекте) с теми же именами. Для этого следует выбрать опцию Update exclusion filters in other source folders to solve nesting. На этом этапе настройка фильтров не требуется (и теперь это будет не слишком удобно - вам нужно будет писать свои тексты вручную), поэтому после добавления связанного источника вы можете просто нажать OK.
Если вам нужно исключить некоторые из пакетов связанного источника (мне нужно в моем случае), вы должны настроить Inclusion/Exclusion filters.

enter image description here


Теперь вы можете указать папки и файлы связанного источника, что вам нужно в вас текущем проекте, и те точки, которые должны быть исключены, используя графическое представление дерева папок связанных источников (использование кнопки Add Multiple).

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