Skip to content

Commit d38f1df

Browse files
committed
feat: Implement runtime loading of custom dependency repositories
1 parent 929bcc3 commit d38f1df

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

src/main/kotlin/cc/modlabs/kpapergradle/KPaperGradlePlugin.kt

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,44 @@ class KPaperGradlePlugin : Plugin<Project> {
302302
maven.addDependency(new Dependency(new DefaultArtifact(dependency), null));
303303
});
304304
305+
// Add default ModLabs mirror
305306
maven.addRepository(new RemoteRepository.Builder("modlabs", "default", "https://nexus.modlabs.cc/repository/maven-mirrors/").build());
307+
308+
// Add custom repositories from optional .repositories resource
309+
try {
310+
java.io.InputStream reposStream = getClass().getClassLoader().getResourceAsStream(".repositories");
311+
if (reposStream != null) {
312+
try (BufferedReader r = new BufferedReader(new InputStreamReader(reposStream))) {
313+
r.lines().forEach(line -> {
314+
String trimmed = line.trim();
315+
if (trimmed.isEmpty() || trimmed.startsWith("#")) return;
316+
String id;
317+
String url;
318+
String[] parts = trimmed.split("\\s+", 2);
319+
if (parts.length == 2) {
320+
id = parts[0];
321+
url = parts[1];
322+
} else {
323+
url = trimmed;
324+
try {
325+
java.net.URI u = java.net.URI.create(url);
326+
String host = u.getHost();
327+
id = host != null ? host.replaceAll("[^a-zA-Z0-9-_]", "-") : Integer.toString(url.hashCode());
328+
} catch (Exception ex) {
329+
id = Integer.toString(url.hashCode());
330+
}
331+
}
332+
try {
333+
maven.addRepository(new RemoteRepository.Builder(id, "default", url).build());
334+
} catch (Exception ex) {
335+
LOGGER.log(Level.WARNING, "Failed to add repository: " + trimmed, ex);
336+
}
337+
});
338+
}
339+
}
340+
} catch (Exception ex) {
341+
LOGGER.log(Level.WARNING, "Failed to read .repositories", ex);
342+
}
306343
} catch (Exception e) {
307344
LOGGER.log(Level.SEVERE, "Failed to load dependencies", e);
308345
}

0 commit comments

Comments
 (0)