Compare commits
2 commits
2ef8b2d1be
...
0484769372
| Author | SHA1 | Date | |
|---|---|---|---|
| 0484769372 | |||
| 425599ff62 |
2 changed files with 32 additions and 1 deletions
|
|
@ -90,12 +90,40 @@ tasks.register("buildAll") {
|
||||||
dependsOn(tasks.withType<Jar>())
|
dependsOn(tasks.withType<Jar>())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Task to merge service files
|
||||||
|
val prepareServiceFiles = tasks.register("prepareServiceFiles") {
|
||||||
|
val outputDir = layout.buildDirectory.dir("generated/service-files")
|
||||||
|
val serviceFile = "META-INF/services/org.adrianvictor.lib.versioning.VersionedServiceRegistrar"
|
||||||
|
|
||||||
|
// Define inputs
|
||||||
|
val inputFiles = mcVersions.map { ver -> file("src/$ver/resources/$serviceFile") }.filter { it.exists() }
|
||||||
|
inputs.files(inputFiles)
|
||||||
|
outputs.dir(outputDir)
|
||||||
|
|
||||||
|
doLast {
|
||||||
|
val registrars = mutableSetOf<String>()
|
||||||
|
inputFiles.forEach { file ->
|
||||||
|
registrars.addAll(file.readLines().filter { it.isNotBlank() })
|
||||||
|
}
|
||||||
|
|
||||||
|
val mergedFile = outputDir.get().file(serviceFile).asFile
|
||||||
|
mergedFile.parentFile.mkdirs()
|
||||||
|
mergedFile.writeText(registrars.joinToString("\n"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
tasks.register<Jar>("bundleAll") {
|
tasks.register<Jar>("bundleAll") {
|
||||||
from(sourceSets["main"].output)
|
from(sourceSets["main"].output)
|
||||||
mcVersions.forEach { ver ->
|
mcVersions.forEach { ver ->
|
||||||
from(sourceSets[ver].output)
|
from(sourceSets[ver].output)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Include the merged service file
|
||||||
|
from(prepareServiceFiles) {
|
||||||
|
into("META-INF/services")
|
||||||
|
include("org.adrianvictor.lib.versioning.VersionedServiceRegistrar")
|
||||||
|
}
|
||||||
|
|
||||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||||
|
|
||||||
archiveClassifier.set("all-implementations")
|
archiveClassifier.set("all-implementations")
|
||||||
|
|
|
||||||
|
|
@ -19,10 +19,13 @@ public class Main extends JavaPlugin {
|
||||||
|
|
||||||
versionedServiceFactory = new DefaultVersionedServiceFactory(versionMatcher);
|
versionedServiceFactory = new DefaultVersionedServiceFactory(versionMatcher);
|
||||||
|
|
||||||
ServiceLoader<VersionedServiceRegistrar> registrars = ServiceLoader.load(VersionedServiceRegistrar.class);
|
ServiceLoader<VersionedServiceRegistrar> registrars = ServiceLoader.load(VersionedServiceRegistrar.class, getClassLoader());
|
||||||
|
int count = 0;
|
||||||
for (VersionedServiceRegistrar registrar : registrars) {
|
for (VersionedServiceRegistrar registrar : registrars) {
|
||||||
registrar.register(versionedServiceFactory);
|
registrar.register(versionedServiceFactory);
|
||||||
|
count++;
|
||||||
}
|
}
|
||||||
|
getLogger().info("Registered " + count + " version-specific registrars.");
|
||||||
|
|
||||||
getLogger().info("tenkumaLib has been enabled!");
|
getLogger().info("tenkumaLib has been enabled!");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue