diff --git a/build.gradle b/build.gradle index c5dda50a..f482903b 100644 --- a/build.gradle +++ b/build.gradle @@ -44,14 +44,10 @@ subprojects { } } } -} - -def gameSubproject = project(':game') - -task(run, dependsOn: gameSubproject.tasks['assemble'], type: JavaExec) { - def gameClasspath = gameSubproject.sourceSets.main.runtimeClasspath - - main = 'org.apollo.Server' - classpath = gameClasspath - jvmArgs = ['-Xmx1750M'] + + test { + testLogging { + events "passed", "skipped", "failed" + } + } } diff --git a/game/build.gradle b/game/build.gradle index be38e260..8db5ebe1 100644 --- a/game/build.gradle +++ b/game/build.gradle @@ -34,4 +34,13 @@ dependencies { compile group: 'org.jetbrains.kotlin', name: 'kotlin-compiler', version: "$kotlinVersion" testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlinVersion" +} + +task run(type: JavaExec, dependsOn: [classes, pluginClasses]) { + FileCollection gameClasspath = sourceSets.main.runtimeClasspath + sourceSets.main.compileClasspath + + main = 'org.apollo.Server' + classpath = gameClasspath + jvmArgs = ['-Xmx1750M'] + workingDir = "$rootDir" } \ No newline at end of file diff --git a/game/plugins.gradle b/game/plugins.gradle index 41904c9c..5bdfd2f4 100644 --- a/game/plugins.gradle +++ b/game/plugins.gradle @@ -23,6 +23,10 @@ task pluginTests { } } +task pluginClasses { + group = "plugin-build" +} + check.dependsOn pluginTests class PluginBuildData { @@ -69,7 +73,7 @@ def configurePluginDependencies(SourceSet mainSources, SourceSet testSources, def configurePluginTasks(String name, SourceSet mainSources, SourceSet testSources, FileCollection scriptFiles, List pluginDependencies) { - task("${name}Tests", type: Test) { + def testsTask = task("${name}Tests", type: Test) { group = "plugin-verification" testClassesDir = testSources.output.classesDir @@ -81,23 +85,30 @@ def configurePluginTasks(String name, SourceSet mainSources, SourceSet testSourc html.destination = "$buildDir/reports/plugin-tests/$name" junitXml.destination = "$buildDir/plugin-tests/$name" } + + testLogging { + events "passed", "skipped", "failed" + } } - task("compile${name}Scripts", type: JavaExec) { - group = "plugin-compile" - - def outputDir = mainSources.output.classesDir.toString() - - inputs.files scriptFiles - outputs.dir outputDir - - classpath = sourceSets.main.compileClasspath + sourceSets.main.runtimeClasspath - main = 'org.apollo.game.plugin.kotlin.KotlinPluginCompiler' - args = [outputDir] + scriptFiles.collect { it.absoluteFile.toString() } - } - - def testsTask = tasks["${name}Tests"] pluginTests.dependsOn testsTask + + if (!scriptFiles.empty) { + def compileScriptsTask = task("compile${name}Scripts", type: JavaExec) { + group = "plugin-compile" + + def outputDir = mainSources.output.classesDir.toString() + + inputs.files scriptFiles + outputs.dir outputDir + + classpath = sourceSets.main.compileClasspath + sourceSets.main.runtimeClasspath + main = 'org.apollo.game.plugin.kotlin.KotlinPluginCompiler' + args = [outputDir] + scriptFiles.collect { it.absoluteFile.toString() } + } + + pluginClasses.dependsOn compileScriptsTask + } } def pluginTree = fileTree(dir: "$pluginsDir")