13

我尝试了所有不同的设置,是的,我知道 eclipse.ini 和 config.ini 并且还尝试了不同的命令行参数!没有什么能解决我的问题!

所有尝试以及每次我运行 eclipse.exe 时它都想写入我的用户主目录,即 .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 保留重复的配置文件设置

我只是想隔离eclipse,这应该是可配置的!我不喜欢 user.home 的输出 .. 这不是一个选项!对于每个 Eclipse 安装,我想控制 Eclipse 在哪些文件夹中创建的内容。

(我只能从windows os上看出来,我不知道Mac上的Eclipse在上面的设置下是否能更好地工作)


我不使用 OOMPH 安装程序,下面的一些评论具有误导性

4

4 回答 4

2

我试图解决这个问题的方法几乎是成功的。这是否是您的答案将取决于您可接受的最低质量水平。

  • 如果您试图阻止您的 Eclipse IDE 填满您的家庭驱动器,那么这种技术将起作用(它对我有用)。Eclipse 是由 Oomph 安装还是从普通 zip 安装无关紧要,因为在此解决方案中没有修改任何与 Oomph 相关的内容。
  • 如果要求可以完全删除用户主 p2 文件夹,而 Eclipse 仍然可以在不重新创建该目录的情况下工作,那么我还没有能够实现这一点。

我将其发布为部分解决方案,也许是希望其他人可以在此基础上找到更好的解决方法。显然,如果 eclipse 有一个可配置的下载位置,并且安装程序实际上只将所有软件安装到所选位置,那么完美的解决方案将是,但这需要 Eclipse 开发人员修复产品的“P2”组件。以下只是一种解决方法。

战略

前提是下载池文件夹似乎总是被硬编码到配置文件中,位于运行 eclipse 安装程序的用户的主文件夹下。此解决方法的本质是在您选择的位置创建一个假用户主文件夹,在配置文件中进行大量查找和替换,然后强制 Java 系统属性将该新文件夹用作“user.home” " 欺骗 Eclipse 使用它进行下载。

方法

这是在 Mint Linux 上的 Eclipse 4.7 Oxygen.3A 上测试的。
需要对 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 文件夹的引用并将其替换为 fakeUser 下的新 p2 文件夹。你可以在这里找到超过 1000 个匹配项来替换。再次似乎可以使这些相对于 eclipse 文件夹,因此“fakeHome/.p2/pool/.....”的路径将起作用。
  8. 转到新/eclipse/fakeHome/.p2文件夹并编辑“pools.info”和“profiles.info”两个文件。再次找到对您的真实用户主页的任何引用,并将其替换为 fakeUser 文件夹的路径。对这两个文件中的池位置使用完整路径名(来自根目录)。
  9. 解压、编辑和重新打包最新的 profileRegistry。找到文件夹
    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 文件,然后将配置文件 gzip 到 gz,因此它已替换旧的。
  10. 我还编辑了该文件/eclipse/fakeHome/.p2/org.eclipse.equinox.p2.core/cache/artifacts.xml并将存储库名称替换为对 fakeHome 中新位置的引用,但我不确定这对于让 eclipse 工作是否必要。
  11. 开始日食。

结果

完成上述操作后,我尝试从帮助菜单中添加安装新软件。从 Redhat 和 Spring 下载了大量新插件后,新的 fakeHome pool 占用了 900MB,但原来的用户 home pool 仍然不到 400MB,与安装 eclipse 时一样。所以它已经成功地移动了更新程序的下载缓存,并且没有文件在旧位置得到更新,但是 .p2 下的两个目录似乎仍然有它们的时间戳。

如果有人觉得这很有用,或者想出如何改进它,请告诉我。

于 2018-06-23T12:10:31.600 回答
2

这适用于 Windows 7,Eclipse Oxygen:

  • 安装 Eclipse,但不要启动它
  • 编辑eclipse.ini并在下面-vmargs添加一个条目以将用户主目录更改为共享文件夹:

例如

-vmargs
-Duser.home=C:\Development
  • 启动 Eclipse。应该看到在共享文件夹中创建的“.eclipse”、“.tooling”等文件夹,并且在您的用户文件夹下没有创建任何内容。
于 2018-07-11T13:45:40.107 回答
1

从适用于 Windows 10 64 位的 Eclipse Java 2019-06 开始

我在下面添加了我的 eclipse.ini:

-vmargs

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

.eclipse、.p2、&.tooling这3个文件夹是我启动后出现的,然后关闭eclipse。

我不确定这些何时写入新路径,但它在我的 Windows 10 中有效。

于 2019-09-10T21:45:04.530 回答
0

您是否尝试将以下行添加到 eclipse.ini 下方的 -vmargs 中:

-Dosgi.configuration.area=@user.home/.someFolder

这将使用 .someFolder 而不是 .eclipse 或

-Dosgi.configuration.area=C:\path_to_desired_location\.eclipseJAVA
于 2020-01-29T08:18:00.323 回答