Eclipse Foundation 命令行导入抛出错误

Eclipse Foundation command line import throws error

我正试图在我的开发过程中自动化一些东西。我发现自己不断地使用存储库中的项目生成新的工作区并将它们导入 eclipse。

我可以使用 SVN 和 Maven 正确导入和构建项目。但我必须手动将项目导入 Eclipse。我尝试编写一个批处理文件以根据参数导入,但我一直在控制台中收到此错误:

org.eclipse.m2e.logback.configuration: The org.eclipse.m2e.logback.configuration bundle was activated before the state location was initialized. Will retry after the state location is initialized.

虽然 eclipse 抛出了这个错误:

The folder "path\to\workspace" -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import path\to\project\.metadata" is read-only`

我使用的命令是

call path\to\eclipse\eclipsec.exe --launcher.suppressErrors -nosplash -data "path\to\workspace\" -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import path\to\project

我用的eclipse是Eclipse Foundation 2019/12,JDK1.8。我也在使用这个插件 https://github.com/seeq12/eclipse-import-projects-plugin 应该可以解决问题,但出于某种原因我不知道它失败了。

我该怎么做才能解决这个问题?还有其他选择吗?我真的只想使用批处理文件。

谢谢。

让我们仔细看看命令行的这一部分:

[...] -data "path\to\workspace\" -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import path\to\project

反斜杠通常被视为转义字符。在这种情况下,我怀疑它正在转义后续引号字符,导致它被视为出现在工作区路径中的文字引号字符,而不是终止工作区路径参数。由于工作区路径参数以引号开头,后续参数都被解释为工作区路径的一部分,因此 Eclipse 认为完整的工作区路径是:

path\to\workspace\" -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import path\to\project

这显然不存在。

加倍反斜杠可能会解决问题:

call path\to\eclipse\eclipsec.exe --launcher.suppressErrors -nosplash -data "path\to\workspace\" -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import path\to\project

现在,对于每个 \ 对,第一个反斜杠转义第二个反斜杠,从而产生一个文字反斜杠,这就是您想要的。

欢迎在 Windows 上编程,它选择一个字符作为其路径分隔符,世界其他地方已选择该字符作为其转义字符:)