IDEA-109675 Absolute path in iml file (maven project)

This commit is contained in:
Sergey Evdokimov
2013-06-27 19:52:27 +04:00
parent 79ca8cbd70
commit 15a9ceb3f2
4 changed files with 28 additions and 7 deletions
@@ -37,6 +37,17 @@ public class MavenServerSettings implements Serializable, Cloneable {
@NotNull private UpdatePolicy myPluginUpdatePolicy = UpdatePolicy.DO_NOT_UPDATE;
@NotNull private UpdatePolicy mySnapshotUpdatePolicy = UpdatePolicy.ALWAYS_UPDATE;
private String projectJdk;
@Nullable
public String getProjectJdk() {
return projectJdk;
}
public void setProjectJdk(@Nullable String projectJdk) {
this.projectJdk = projectJdk;
}
public int getLoggingLevel() {
return myLoggingLevel;
}
@@ -164,6 +164,10 @@ public class Maven3ServerEmbedderImpl extends MavenRemoteObject implements Maven
mySystemProperties = FieldAccessor.<Properties>get(cliRequestClass, cliRequest, "systemProperties");
if (settings.getProjectJdk() != null) {
mySystemProperties.setProperty("java.home", settings.getProjectJdk());
}
myMavenSettings = buildSettings(FieldAccessor.<SettingsBuilder>get(MavenCli.class, cli, "settingsBuilder"),
settings,
mySystemProperties,
@@ -32,6 +32,7 @@ import com.intellij.openapi.projectRoots.JavaSdkType;
import com.intellij.openapi.projectRoots.JdkUtil;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.projectRoots.SimpleJavaSdkType;
import com.intellij.openapi.roots.ProjectRootManager;
import com.intellij.openapi.util.ShutDownTracker;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.util.Alarm;
@@ -54,7 +55,6 @@ import org.jetbrains.idea.maven.utils.MavenProgressIndicator;
import org.jetbrains.idea.maven.utils.MavenUtil;
import java.io.File;
import java.nio.charset.Charset;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;
@@ -336,6 +336,9 @@ public class MavenServerManager extends RemoteObjectWrapper<MavenServer> impleme
settings = settings.clone();
settings.setOffline(false);
}
settings.setProjectJdk(MavenUtil.getSdkPath(ProjectRootManager.getInstance(project).getProjectSdk()));
return MavenServerManager.this.getOrCreateWrappee().createEmbedder(settings);
}
};
@@ -791,12 +791,7 @@ public class MavenUtil {
return (int)crc.getValue();
}
@Nullable
public static String getModuleJre(@NotNull MavenProjectsManager mavenProjectsManager, @NotNull MavenProject mavenProject) {
Module module = mavenProjectsManager.findModule(mavenProject);
if (module == null) return null;
Sdk sdk = ModuleRootManager.getInstance(module).getSdk();
public static String getSdkPath(@Nullable Sdk sdk) {
if (sdk == null) return null;
VirtualFile homeDirectory = sdk.getHomeDirectory();
@@ -811,4 +806,12 @@ public class MavenUtil {
return homeDirectory.getPath();
}
@Nullable
public static String getModuleJre(@NotNull MavenProjectsManager mavenProjectsManager, @NotNull MavenProject mavenProject) {
Module module = mavenProjectsManager.findModule(mavenProject);
if (module == null) return null;
return getSdkPath(ModuleRootManager.getInstance(module).getSdk());
}
}