我已经尝试了所有不同的设置,是的,我知道 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 安装程序,下面的一些评论具有误导性
最佳答案
我尝试解决这个问题的方法几乎成功了。这是否适合您将取决于您可接受的最低质量水平。
我将此作为部分解决方案发布,也许是希望其他人可以在此基础上找到更好的解决方法。显然,完美的解决方案是如果 eclipse 有一个可配置的下载位置,并且安装程序实际上只将所有软件安装到选定的位置,但这需要 Eclipse 开发人员修复产品的“P2”组件。以下只是一种解决方法。
战略
前提是下载池文件夹似乎总是硬编码到配置文件中,位于运行 eclipse 安装程序的用户的主文件夹下。此解决方法的本质是在您选择的位置创建一个假用户主文件夹,在配置文件中进行大量查找和替换,然后强制 Java 系统属性使用该新文件夹作为“user.home” "这会欺骗 Eclipse 使用它进行下载。
方法
这是在 Mint Linux 上的 Eclipse 4.7 Oxygen.3A 上测试的。
需要对 Eclipse 安装文件夹进行广泛的脑部手术。
在这个例子中,Oomph 安装程序被赋予
/media/LINAPPS/ubuntu-apps/eclipse-oxy
作为安装目标,然后创建 /media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse
在安装过程中。 在这个例子中,我创建了
eclipse-oxy/eclipse/fakeHome
例如
cp -R /home/$USER/.p2 /media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse/fakeHome/.p2
eclipse
文件夹并编辑 eclipse.ini
在文本编辑器中。进行以下 2 处更改:--launcher.library
之后设置行是相对于 eclipse
的新位置中的池的副本文件夹,例如:fakeHome/.p2/pool/
...等... 例如:
-Duser.home=/media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse/fakeHome
eclipse/configuration/org.eclipse.update/platform.xml
.找到第一个 <site>
条目并将 url 属性更改为相对于 eclipse 文件夹的新池文件夹。例如:url="file:fakeHome/.p2/pool/"
/media/LINAPPS/ubuntu-apps/eclipse-oxy/eclipse/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info
并再次使用fakeUser 下的新p2 文件夹查找并替换对您用户主目录的p2 文件夹的所有引用。您可以在此处找到 1000 多个匹配项进行替换。似乎可以再次使这些相对于 eclipse 文件夹,因此“fakeHome/.p2/pool/.....”的路径将起作用。 /eclipse/fakeHome/.p2
文件夹并编辑“pools.info”和“profiles.info”中的两个文件。再次找到对您的真实用户主页的任何引用,并将其替换为 fakeUser 文件夹的路径。对这两个文件中的池位置使用完整路径名(从 root 开始)。 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,因此它已经替换了旧的。 /eclipse/fakeHome/.p2/org.eclipse.equinox.p2.core/cache/artifacts.xml
并使用对 fakeHome 中新位置的引用替换了存储库名称,但我不确定这是让 eclipse 工作所必需的。 结果
完成上述操作后,我尝试从“帮助”菜单中添加“安装新软件”。从Redhat和Spring下载了很多新插件后,新的fakeHome池占用了900MB,但原来的用户home池仍然不到400MB,这就是安装eclipse后的样子。因此,它成功地移动了更新程序的下载缓存,并且旧位置中没有文件得到更新,但是 .p2 下的两个目录似乎仍然触及了它们的时间戳。
如果有人发现这很有用,或者想出如何改进它,请告诉我。
关于eclipse - 如何修改 Eclipse 位置以防止写入 user.home 目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39168906/