我有一个Eclipse插件,它必须启动Gradle构建脚本。我目前使用SpringSource Eclipse插件。这是我的代码:
public void run(String project, String task) throws FastOperationFailedException, CoreException {
File projectLocation = new File(project).getAbsoluteFile();
GradleProject gradleProject = GradleCore.create(projectLocation);
IWorkspace workspace = ResourcesPlugin.getWorkspace();
System.out.println("MyWorkspace1: " + workspace.toString());
TaskUtil.execute(gradleProject, null, Arrays.asList("mytask"), new NullProgressMonitor());
}
此代码工作正常。 Gradle流程已启动并履行其职责。但是,Gradle是在新的JVM中启动的。我需要在我的插件和Gradle进程之间传递对象,所以我需要让它们在同一个JVM上运行。有没有人知道这是否可行,或者我是否可以将对象传递给Gradle而不进行序列化?
总体思路是创建一种将IJavaProjet传递给Gradle的方法。 MoDisco是一个模型驱动的逆向工程工具,我需要将其称为我的构建脚本的一部分。它只对IJavaProject实例进行操作,这些实例可以在Eclipse JVM中轻松检索,但很难获得。总而言之,我需要: