Skip to content

Commit 536a390

Browse files
committed
feat: retrieve IDE maven user settings file and local repository.
Signed-off-by: Chao Wang <[email protected]>
1 parent e54b315 commit 536a390

File tree

2 files changed

+41
-10
lines changed

2 files changed

+41
-10
lines changed

src/main/java/org/jboss/tools/intellij/exhort/ApiService.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,20 @@ private void setRequestProperties(final String manifestName) {
147147
System.clearProperty("EXHORT_PREFER_MVNW");
148148
}
149149

150+
String userSettingsFile = MavenSettingsUtil.getUserSettingsFile();
151+
if (!userSettingsFile.isBlank()) {
152+
System.setProperty("EXHORT_MVN_USER_SETTINGS_FILE", userSettingsFile);
153+
} else {
154+
System.clearProperty("EXHORT_MVN_USER_SETTINGS_FILE");
155+
}
156+
157+
String localRepository = MavenSettingsUtil.getLocalRepository();
158+
if (!localRepository.isBlank()) {
159+
System.setProperty("EXHORT_MVN_LOCAL_REPOSITORY", localRepository);
160+
} else {
161+
System.clearProperty("EXHORT_MVN_LOCAL_REPOSITORY");
162+
}
163+
150164
if (settings.gradlePath != null && !settings.gradlePath.isBlank()) {
151165
System.setProperty("EXHORT_GRADLE_PATH", settings.gradlePath);
152166
} else {

src/main/java/org/jboss/tools/intellij/settings/MavenSettingsUtil.java

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,46 @@
22

33
import com.intellij.openapi.project.Project;
44
import com.intellij.openapi.project.ProjectManager;
5-
import org.jetbrains.annotations.Nullable;
65
import org.jetbrains.idea.maven.project.MavenGeneralSettings;
76
import org.jetbrains.idea.maven.project.MavenHomeType;
87
import org.jetbrains.idea.maven.project.MavenWorkspaceSettingsComponent;
98
import org.jetbrains.idea.maven.project.MavenWrapper;
109

1110
public final class MavenSettingsUtil {
1211

12+
private static MavenGeneralSettings mavenGeneralSettings;
13+
1314
private MavenSettingsUtil() {
1415
// no‑op
1516
}
1617

17-
@Nullable
18-
public static boolean isMavenWrapperSelected() {
19-
Project project;
20-
Project[] openProjects = ProjectManager.getInstance().getOpenProjects();
21-
if (openProjects.length > 0) {
22-
project = openProjects[0];
23-
} else {
24-
project = ProjectManager.getInstance().getDefaultProject();
18+
private static MavenGeneralSettings getMavenGeneralSettings() {
19+
if (mavenGeneralSettings == null) {
20+
Project project;
21+
Project[] openProjects = ProjectManager.getInstance().getOpenProjects();
22+
if (openProjects.length > 0) {
23+
project = openProjects[0];
24+
} else {
25+
project = ProjectManager.getInstance().getDefaultProject();
26+
}
27+
mavenGeneralSettings = MavenWorkspaceSettingsComponent.getInstance(project).getSettings().getGeneralSettings();
2528
}
26-
MavenGeneralSettings settings = MavenWorkspaceSettingsComponent.getInstance(project).getSettings().getGeneralSettings();
29+
return mavenGeneralSettings;
30+
}
31+
32+
public static boolean isMavenWrapperSelected() {
33+
MavenGeneralSettings settings = getMavenGeneralSettings();
2734
MavenHomeType mavenHomeType = settings.getMavenHomeType();
2835
return mavenHomeType instanceof MavenWrapper;
2936
}
37+
38+
public static String getUserSettingsFile() {
39+
MavenGeneralSettings settings = getMavenGeneralSettings();
40+
return settings.getUserSettingsFile();
41+
}
42+
43+
public static String getLocalRepository() {
44+
MavenGeneralSettings settings = getMavenGeneralSettings();
45+
return settings.getLocalRepository();
46+
}
3047
}

0 commit comments

Comments
 (0)