description = 'Script Assembler Plugin' dependencies { annotationProcessor group: 'org.eclipse.sisu', name: 'org.eclipse.sisu.inject', version: sisu compileOnly group: 'org.apache.maven.plugin-tools', name: 'maven-plugin-annotations', version: mavenPluginAnnotations implementation group: 'com.google.guava', name: 'guava', version: guava implementation group: 'org.apache.maven', name: 'maven-plugin-api', version: mavenPluginApi implementation group: 'org.slf4j', name: 'slf4j-nop', version: slf4j implementation project(':cache') implementation project(':runelite-api') } compileJava.outputs.upToDateWhen {false} compileJava.doLast { def path = sourceSets.main.runtimeClasspath def loader = new URLClassLoader(path.collect { f -> f.toURI().toURL() } as URL[]) def assemble = loader.loadClass('net.runelite.script.AssembleMojo') String[] assembleArgs = [ "${project.rootDir}/runelite-client/src/main/scripts", "${project.rootDir}/runelite-client/src/main/resources/runelite" ] assemble.main(assembleArgs) def index = loader.loadClass('net.runelite.script.IndexMojo') String[] indexArgs = [ "${project.rootDir}/runelite-client/src/main/resources/runelite", "${project.rootDir}/runelite-client/src/main/resources/runelite/index" ] index.main(indexArgs) loader.close() }