mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-261272 - maven wsl pom highlight
GitOrigin-RevId: 1c3bf1d85471c6d2a746c0a00b00f9107d3b348d
This commit is contained in:
committed by
intellij-monorepo-bot
parent
ca35b63d33
commit
1d2e787f53
+9
-1
@@ -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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user