2010-12-03 1 views
4

У меня есть ряд связанных проектов, которые я разместил под управлением Git (все эти проекты находятся в одном рабочем пространстве, которое является верхним уровнем хранилища Git) и клонирован с моего рабочего стола (32 бит) на мой ноутбук (64 бит), поэтому я могу работать над ними везде. Папка рабочего пространства .metadata исключается, но все папки проекта отслеживаются.Разработка проекта Java Eclipse на 32-битных и 64-битных системах Linux

Когда я открыл клонированный рабочее место на ноутбуке, я был встречен ошибкой:

Project 'project' is missing required library: 
'/usr/eclipse/plugins/org.eclipse.swt.gtk.linux.x86_3.5.2.v3557f.jar' 

Очевидно, что 64-разрядные затмение не имеет библиотеки 32-разрядные, но мне интересно, каким образом это должны быть разрешены.

Эта библиотека была добавлена ​​как часть шаблона проекта SWT/JFace окна Builder. В папке плагинов eclipse есть org.eclipse.swt_3.5.2.v3557f.jar, но изменение пути к классу для поиска не работает (не странно выглядит SWT). Просматривая остальную часть файла .classpath для проектов SWT/JFace, эта конкретная библиотека является только, которая является такой специфичной для платформы.

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

Могу ли я просто обозначить 64-битную банку на ноутбуке 32-битным именем, чтобы путь к классам мог найти библиотеку? Есть ли другое, лучшее решение?

UPDATE: Похоже, что этот тип проекта должен зависеть от конкретного фрагмента SWT, поэтому до тех пор, пока это лучшее решение, я собираюсь симлинки фрагменты в вопросе на обеих машинах, чтобы направить компилятор к правильный фрагмент. Строительство/запуск проектов на других машинах (и особенно в Windows) будет! но я построю этот мост, когда доберусь туда.

+0

Подумайте об этом, почему, черт возьми, это написание classpaths с определенными платформами? Если бы я взял это на компьютер с Windows, он не смог бы найти _any_ вещей, которые ему нужно запустить ... Черт, документы на странице Google Code говорят, что пути классов начинаются с `C:/eclipse/plugins /` – 2010-12-05 06:52:12

ответ

1

Что именно вы держите в своем источнике?

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

Я думаю, что у вас есть проблема с настройками IDE для вашего 64-битного Eclipse, не работающего с 32-битным.

Просто удалите каталог .metadata в своем рабочем пространстве и переименуйте все проекты в этом Eclipse.

1

Не делайте этого со всем рабочим пространством. Просто делайте это с отдельными проектами. Хорошо работает здесь.

+0

Все проекты в этом конкретном рабочем пространстве логически связаны, но недостаточно для того, чтобы быть одним и тем же проектом. Я буду их в одном хранилище. – 2010-12-03 23:49:59

+0

Вы можете сделать это, добавив каждый проект Eclipse отдельно в репозиторий. Не добавляйте все рабочее пространство. – 2010-12-04 08:24:51

+0

Думая о том, что я делал, чтобы получить их все в репозитории (насколько это касается Eclipse - как вручную сказать, что eclipse проект находится под управлением git - это еще один вопрос), я на самом деле делал именно это. – 2010-12-05 06:12:22

1

Какой тип проекта вы разрабатываете? Проект java или подключаемый модуль?

Если вы разрабатываете проект подключаемого модуля, ваш проект не должен напрямую зависеть от конкретного фрагмента swt (например, swt.gtk, swt.win32). Это должно зависеть от хост-модуля «org.eclipse.swt», что фактическая реализация swt - это разные фрагменты на разных платформах.

Если вы разрабатываете проект java, который требует использования swt в качестве стороннего требования. Вы можете установить пакет eclipse delta для обоих 32-битных и 64-битных затмений.

0

Чтобы избежать проблем с платформой, вы также можете рассмотреть Maven.Использование Maven 2 или 3, с дополнительной комбинацией проблем с платформой профилей, можно легко решить. Используя несколько плагинов Maven для Eclipse, проекты Maven могут быть импортированы непосредственно в Eclipse.

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