IDEA-261272 - maven wsl pom highlight

GitOrigin-RevId: 1c3bf1d85471c6d2a746c0a00b00f9107d3b348d
This commit is contained in:
Alexander Bubenchikov
2021-02-04 12:51:46 +00:00
committed by intellij-monorepo-bot
parent ca35b63d33
commit 1d2e787f53
3 changed files with 43 additions and 23 deletions
@@ -4,6 +4,7 @@ package org.jetbrains.idea.maven.project;
import com.intellij.build.BuildProgressListener;
import com.intellij.build.SyncViewManager;
import com.intellij.configurationStore.SettingsSavingComponentJavaAdapter;
import com.intellij.execution.wsl.WSLDistribution;
import com.intellij.ide.startup.StartupManagerEx;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.Application;
@@ -195,7 +196,14 @@ public final class MavenProjectsManager extends MavenSimpleProjectComponent
}
public File getLocalRepository() {
return getGeneralSettings().getEffectiveLocalRepository();
WSLDistribution wslDistribution = MavenWslUtil.tryGetWslDistribution(myProject);
if (wslDistribution == null) {
return getGeneralSettings().getEffectiveLocalRepository();
}
return MavenWslUtil.resolveLocalRepository(wslDistribution,
null,
null,
null);
}
@ApiStatus.Internal
@@ -772,7 +772,8 @@ public class MavenUtil {
if (!isEmptyOrSpaces(overriddenLocalRepository)) result = new File(overriddenLocalRepository);
if (result == null) {
result = doResolveLocalRepository(resolveUserSettingsFile(overriddenUserSettingsFile),
resolveGlobalSettingsFile(overriddenMavenHome));
resolveGlobalSettingsFile(overriddenMavenHome),
resolveM2Dir());
}
try {
return result.getCanonicalFile();
@@ -810,7 +811,7 @@ public class MavenUtil {
}
@NotNull
public static File doResolveLocalRepository(@Nullable File userSettingsFile, @Nullable File globalSettingsFile) {
protected static File doResolveLocalRepository(@Nullable File userSettingsFile, @Nullable File globalSettingsFile, @NotNull File defaultM2Dir) {
if (userSettingsFile != null) {
final String fromUserSettings = getRepositoryFromSettings(userSettingsFile);
if (!isEmpty(fromUserSettings)) {
@@ -825,7 +826,7 @@ public class MavenUtil {
}
}
return new File(resolveM2Dir(), REPOSITORY_DIR);
return new File(defaultM2Dir, REPOSITORY_DIR);
}
@Nullable
@@ -6,7 +6,6 @@ import com.intellij.execution.wsl.WslDistributionManager
import com.intellij.openapi.project.Project
import org.jetbrains.idea.maven.server.WslMavenDistribution
import java.io.File
import java.io.IOException
object MavenWslUtil : MavenUtil() {
@JvmStatic
@@ -26,9 +25,23 @@ object MavenWslUtil : MavenUtil() {
return project.basePath?.let { WslDistributionManager.getInstance().distributionFromPath(it) }
}
/**
* return file in windows-style ("\\wsl$\distrib-name\home\user\.m2\settings.xml")
*/
@JvmStatic
fun WSLDistribution.resolveUserSettingsFile(overriddenUserSettingsFile: String?): File {
return if (!isEmptyOrSpaces(overriddenUserSettingsFile)) File(overriddenUserSettingsFile) else File(this.resolveM2Dir(), SETTINGS_XML)
val localFile = if (!isEmptyOrSpaces(overriddenUserSettingsFile)) File(overriddenUserSettingsFile)
else File(this.resolveM2Dir(), SETTINGS_XML)
return this.getWindowsFile(localFile)!!
}
/**
* return file in windows-style ("\\wsl$\distrib-name\home\user\.m2\settings.xml")
*/
@JvmStatic
fun WSLDistribution.resolveGlobalSettingsFile(overriddenMavenHome: String?): File? {
val directory = this.resolveMavenHomeDirectory(overriddenMavenHome) ?: return null
return File(File(directory, CONF_DIR), SETTINGS_XML)
}
/**
@@ -84,7 +97,7 @@ object MavenWslUtil : MavenUtil() {
}
/**
* return file in wsl style
* return file in windows style
*/
@JvmStatic
fun WSLDistribution.resolveLocalRepository(overriddenLocalRepository: String?,
@@ -94,23 +107,10 @@ object MavenWslUtil : MavenUtil() {
if (overriddenLocalRepository != null && !isEmptyOrSpaces(overriddenLocalRepository)) result = File(overriddenLocalRepository)
if (result == null) {
result = doResolveLocalRepository(this.resolveUserSettingsFile(overriddenUserSettingsFile),
this.resolveGlobalSettingsFile(overriddenMavenHome))
this.resolveGlobalSettingsFile(overriddenMavenHome),
this.resolveM2Dir())
}
return try {
result.canonicalFile
}
catch (e: IOException) {
result
}
}
/**
* return file in windows-style ("\\wsl$\distrib-name\home\user\.m2\settings.xml")
*/
@JvmStatic
fun WSLDistribution.resolveGlobalSettingsFile(overriddenMavenHome: String?): File? {
val directory = this.resolveMavenHomeDirectory(overriddenMavenHome) ?: return null
return File(File(directory, CONF_DIR), SETTINGS_XML)
return this.getWindowsFile(result)!!
}
@JvmStatic
@@ -120,7 +120,18 @@ object MavenWslUtil : MavenUtil() {
return WslMavenDistribution(this, wslFile, "default")
}
@JvmStatic
fun getJdkPath(wslDistribution: WSLDistribution): String? {
return wslDistribution.getEnvironmentVariable("JAVA_HOME");
}
@JvmStatic
fun WSLDistribution.getWindowsFile(wslFile: File?): File? {
return wslFile?.let { this.getWindowsPath(wslFile.path) }?.let(::File)
}
@JvmStatic
fun WSLDistribution.getWslFile(wslFile: File?): File? {
return wslFile?.let { this.getWindowsPath(wslFile.path) }?.let(::File)
}
}