Fix task dependency for collectScreenshots

This commit is contained in:
Edwin Jakobs
2020-04-22 23:08:00 +02:00
parent 3e24b4c22c
commit a28f298690

View File

@@ -129,30 +129,30 @@ allprojects {
} }
task collectScreenshots(dependsOn: 'classes') {
task collectScreenshots {
doFirst { doFirst {
for (sub in project.subprojects) { def demoProjects = project.subprojects.findAll { it.sourceSets.hasProperty("demo") }
if (sub.sourceSets.hasProperty("demo")) { for (sub in demoProjects) {
def set = sub.sourceSets.demo def set = sub.sourceSets.demo
def ucl = new URLClassLoader(set.runtimeClasspath.collect { it.toURI().toURL() } as URL[]) def ucl = new URLClassLoader(set.runtimeClasspath.collect { it.toURI().toURL() } as URL[])
for (x in set.output) { for (x in set.output) {
if (x.exists()) { if (x.exists()) {
for (y in x.listFiles()) { for (y in x.listFiles()) {
def name = y.name def name = y.name
if (!name.contains('$') && name.contains(".class")) { if (!name.contains('$') && name.contains(".class")) {
def klass = ucl.loadClass(y.name.replace(".class", "")) def klass = ucl.loadClass(y.name.replace(".class", ""))
try { try {
def mainMethod = klass.getMethod("main") def mainMethod = klass.getMethod("main")
javaexec { javaexec {
classpath set.runtimeClasspath classpath set.runtimeClasspath
def className = y.name.replace(".class", "") def className = y.name.replace(".class", "")
main = className main = className
jvmArgs += "-DtakeScreenshot=true" jvmArgs += "-DtakeScreenshot=true"
jvmArgs += "-DscreenshotPath=${sub.name}/images/${className}.png" jvmArgs += "-DscreenshotPath=${sub.name}/images/${className}.png"
}
} catch (e) {
// skip?
} }
} catch (e) {
// skip?
} }
} }
} }
@@ -161,3 +161,6 @@ task collectScreenshots(dependsOn: 'classes') {
} }
} }
} }
collectScreenshots.dependsOn {
project.subprojects.findAll { it.sourceSets.hasProperty("demo") }.collect { it.tasks.demoClasses }
}