Skip to content

Commit d10d8b1

Browse files
calamontCallum Lamontfwcd
authored
Fix maven repository discovery (#518)
* Fix maven repository discovery Fixes the maven repository discovery by checking if the candidate paths have a `/repository` directory. An exception is thrown if no valid repository paths are found. * Update shared/src/main/kotlin/org/javacs/kt/classpath/Home.kt Reformat single expression `createPathOrNull` function. Co-authored-by: fwcd <30873659+fwcd@users.noreply.github.com> * Update shared/src/main/kotlin/org/javacs/kt/classpath/Home.kt Co-authored-by: fwcd <30873659+fwcd@users.noreply.github.com> --------- Co-authored-by: Callum Lamont <callum.lamont@complyadvantage.com> Co-authored-by: fwcd <30873659+fwcd@users.noreply.github.com>
1 parent bd5d987 commit d10d8b1

File tree

1 file changed

+19
-11
lines changed
  • shared/src/main/kotlin/org/javacs/kt/classpath

1 file changed

+19
-11
lines changed
Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
11
package org.javacs.kt.classpath
22

3-
import org.javacs.kt.util.userHome
3+
import java.nio.file.Files
4+
import java.nio.file.Path
45
import java.nio.file.Paths
6+
import org.javacs.kt.util.KotlinLSException
7+
import org.javacs.kt.util.userHome
58

9+
private fun createPathOrNull(envVar: String): Path? = System.getenv(envVar)?.let(Paths::get)
610

7-
internal val gradleHome =
8-
System.getenv("GRADLE_USER_HOME")?.let { Paths.get(it) }
9-
?: userHome.resolve(".gradle")
10-
11-
internal val mavenHome =
12-
System.getenv("MAVEN_HOME")?.let { Paths.get(it) }
13-
?: System.getenv("M2_HOME")?.let { Paths.get(it) }
14-
?: userHome.resolve(".m2")
11+
private val possibleMavenRepositoryPaths =
12+
sequenceOf(
13+
createPathOrNull("MAVEN_REPOSITORY"),
14+
createPathOrNull("MAVEN_HOME")?.let { it.resolve("repository") },
15+
createPathOrNull("M2_HOME")?.let { it.resolve("repository") },
16+
userHome.resolve(".m2/repository"),
17+
)
18+
.filterNotNull()
1519

1620
internal val mavenRepository =
17-
System.getenv("MAVEN_REPOSITORY")?.let { Paths.get(it) }
18-
?: mavenHome.resolve("repository")
21+
possibleMavenRepositoryPaths.firstOrNull { Files.exists(it) }
22+
?: throw KotlinLSException(
23+
"No repositories found at \$MAVEN_REPOSITORY, \$MAVEN_HOME, \$M2_HOME or \$HOME/.m2"
24+
)
25+
26+
internal val gradleHome = createPathOrNull("GRADLE_USER_HOME") ?: userHome.resolve(".gradle")

0 commit comments

Comments
 (0)