Как изменить местоположения Eclipse, чтобы предотвратить запись в каталог user.home?

Я пробовал все разные настройки, и да, я знаю об eclipse.ini и config.ini, а также пробовал разные аргументы командной строки! Ничто не решило мою проблему!

Все попытки и все же каждый раз, когда я запускаю eclipse.exe, он хочет записать в мой userhome, то есть папки .eclipse и .p2.

Я пробовал все настройки, среди прочих, в разных комбинациях:

-Dosgi.user.area=file:/c:/eclipse-conf/e46
-Dosgi.configuration.area=file:/c:/eclipse-conf/e46
-Dosgi.instance.area=file:/c:/eclipse-conf/e46
-Declipse.p2.data.area=file:/c:/eclipse-conf/e46/p2
-Dorg.eclipse.equinox.p2.configurationFolder=file:/c:/eclipse-conf/e46/p2
-Dorg.eclipse.equinox.p2.installFolder=file:/c:/eclipse-conf/e46/p2
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=file:/c:/eclipse-conf/e46/p2
-Dorg.eclipse.equinox.p2.cache=file:/c:/eclipse-conf/e46/p2
-Dorg.eclipse.equinox.p2.roaming=file:/c:/eclipse-conf/e46/p2
-Dorg.eclipse.equinox.p2.cache.shared=file:/c:/eclipse-conf/e46/p2

Это не помогло! Ну, он пишет в папку /e46 и /e46/p2, но также создает/записывает в c:\users\mrsimplemind\.eclipse & .eclipseextension & .p2 Даже если я вручную создаю папки, прежде чем это не поможет.

Теперь, пожалуйста, кто-нибудь здесь имел успех, чтобы полностью изолировать выход конфигурации eclipse?

Единственный способ, которым я достиг этого, - изменить user.home, но мне не нравится этот обходной путь, поскольку в исходном "user.home" есть вещи, которые понадобятся в eclipse, например..ssh,.git,.m2 maven и т.д. Я не хочу сохранять дубликаты настроек профиля для каждого пользователя eclipse user.home

Я просто хочу изолировать затмение, это должно быть настраиваемо! Мне не нравятся выходы на user.home.. Это не вариант! Я хочу контролировать то, что создает eclipse в каких папках, для каждой установки затмения.

(я могу только сказать из windows os, я не знаю, как если Eclipse на Mac работает лучше с настройками выше)


Я не использую установщик OOMPH, некоторые комментарии ниже вводят в заблуждение

Ответ 1

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

  • Если вы пытаетесь не допустить, чтобы ваша Eclipse IDE заполнила ваш домашний диск, этот метод будет работать (у меня это сработало). Не должно иметь значения, был ли Eclipse установлен Oomph или из простого zip файла, поскольку в этом решении ничего, связанного с Oomph, не изменяется.
  • Если требуется, чтобы домашняя папка p2 пользователя могла быть полностью удалена, а Eclipse по-прежнему работает без воссоздания этого каталога, нет, я пока не смог этого добиться.

Я публикую это как частичное решение, возможно, в надежде, что кто-то еще сможет использовать его, чтобы найти лучший обходной путь. Очевидно, что идеальным решением было бы, если бы у eclipse было настраиваемое местоположение для загрузки, а установщик фактически установил все программное обеспечение только в выбранном месте, но это требует от разработчиков Eclipse исправления компонента "P2" продукта. Далее следует только обходной путь.

Стратегия

Предполагается, что папка пула загрузки всегда жестко запрограммирована в файлах конфигурации, которые находятся в домашней папке пользователя, запустившего программу установки eclipse. Суть этого обходного пути состоит в том, чтобы создать поддельную домашнюю папку пользователя в выбранном вами месте, выполнить массивный поиск и замену в файлах конфигурации, а затем заставить системное свойство Java использовать эту новую папку как "user.home". "который обманывает Eclipse, чтобы использовать его для своих загрузок.

Метод

Это было протестировано на Eclipse 4.7 Oxygen.3A на Mint Linux.
Необходима обширная операция на мозге установочной папки Eclipse.

  1. Установите Eclipse где-нибудь, кроме вашего домашнего диска пользователя.
    В этом примере установщику Oomph был задан /media/LINAPPS/ubuntu-apps/eclipse-oxy в качестве цели установки, который затем создает /media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse во время установки.
  2. Запустите Eclipse хотя бы один раз, затем закройте его и убедитесь, что Eclipse не запущен.
  3. Создайте новую папку на фальшивом домашнем диске под папкой Eclipse.
    В этом примере я создал eclipse-oxy/eclipse/fakeHome
  4. Скопируйте весь (скрытый) каталог p2 из домашнего каталога вашего пользователя в новый fakeHome.
    например, cp -R /home/$USER/.p2 /media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse/fakeHome/.p2
  5. Перейдите в папку eclipse и отредактируйте eclipse.ini в текстовом редакторе. Сделайте эти 2 изменения:
    • установите строку после --launcher.library, чтобы она была копией пула в новом местоположении относительно папки eclipse, например: fakeHome/.p2/pool/... и т.д.
    • добавьте новую настройку системных свойств в конец файла после всех остальных аргументов vm и установите user.home в домашний каталог нового фальшивого пользователя.
      например: -Duser.home=/media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse/fakeHome
  6. Отредактируйте файл eclipse/configuration/org.eclipse.update/platform.xml. Найдите первую запись <site> и измените атрибут url на новую папку пула относительно папки eclipse. например: url="file:fakeHome/.p2/pool/"
  7. Отредактируйте файл /media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info и снова найдите и замените все ссылки на вашу домашнюю папку p2 пользователя на новую папку p2 под fakeUser. Вы можете найти более 1000 совпадений для замены здесь. Кажется, снова возможно сделать их относительно папки eclipse, поэтому будет работать путь "fakeHome/.p2/pool/.....".
  8. Перейдите в новую папку /eclipse/fakeHome/.p2 и отредактируйте оба файла там: pools.info и profiles.info. Снова найдите ссылку на дом вашего реального пользователя и замените его на путь к папке fakeUser. Используйте полное имя пути (от корня) для расположения пула в обоих этих файлах.
  9. Распакуйте, отредактируйте и перепакуйте последнюю версию профиля. Найти папку
    eclipse/fakeHome/.p2/org.eclipse.equinox.p2.engine/profileRegistry/_media_LINAPPS_ubuntu-apps_eclipse-oxy_eclipse.profile/. Теперь найдите последний gz файл с меткой времени в этой папке. Например, его можно назвать "1529736854441.profile.gz".
    Gunzip этот файл .gz. Отредактируйте файл .profile и снова замените любое упоминание вашего реального домашнего пользователя новой папкой fakeUser. Например, в моей установке один из первых параметров свойства должен был быть изменен на
    <property name='org.eclipse.equinox.p2.cache' value='/media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse/fakeHome/.p2/pool'/>
    Удалите старый файл gz, затем скопируйте профиль в gz, чтобы он заменил старый.
  10. Я также отредактировал файл /eclipse/fakeHome/.p2/org.eclipse.equinox.p2.core/cache/artifacts.xml и заменил имя репозитория ссылкой на новое местоположение внутри fakeHome, но я не уверен, что это было необходимо для работы затмения.
  11. Начните затмение.

Результаты

После этого я попытался добавить "Установить новое программное обеспечение" из меню "Справка". После загрузки большого количества новых плагинов из Redhat и Spring новый пул fakeHome занимает 900 МБ, но исходный домашний пул пользователя по-прежнему составляет менее 400 МБ, что и было, как только было установлено Eclipse. Таким образом, он успешно переместил кэш загрузок программы обновления, и в старом месте не обновлялись файлы, но две директории в .p2, похоже, все еще касаются своих временных меток.

Если кто-то найдет это полезным или выяснит, как его улучшить, пожалуйста, дайте мне знать.

Ответ 2

Это работает на Windows 7, Eclipse Oxygen:

  • Установите Eclipse, но пока не запускайте его
  • Отредактируйте eclipse.ini и под -vmargs добавьте запись, чтобы изменить домашнюю страницу пользователя на общую папку:

например,

-vmargs
-Duser.home=C:\Development
  • Запустить Затмение. Должны появиться папки ".eclipse", ".tooling" и т.д., Созданные в общей папке, и ничего в вашей пользовательской папке.

Ответ 3

Начиная с Eclipse Java 2019-06 для Windows 10, 64-разрядная версия

Я добавил свой eclipse.ini ниже:

-vmargs

-D"user.home=C:\your_path_here"

3 папки .eclipse,.p2 и &.tooling появился после того, как я начал, а затем закрыл затмение.

Я не уверен, когда они записаны в новый путь, но это работало в моей Windows 10.