Skip to content

Commit 160fc3d

Browse files
authored
Only build UI rest project if resource classes exist (#23)
1 parent d096dc1 commit 160fc3d

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

ui/component/rest/build.gradle

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,42 @@ dependencies {
2222

2323
generateTypeScript createTSGeneratorConfigForClient("src/restclient.ts", new File("${project(":ui:component:model").projectDir}/src/typescript-generator-info.json"), project(":model"))
2424
generateTypeScript.dependsOn resolveTask(":ui:component:model:generateTypeScript")
25+
generateTypeScript.onlyIf { countResourceClasses() > 0 }
26+
npmBuild.onlyIf { countResourceClasses() > 0 }
27+
tasks.register('dummyRestClient') {
28+
onlyIf { countResourceClasses() == 0 }
29+
doLast {
30+
file("${projectDir}/src/restclient.ts").text = 'export class ApiClient {}'
31+
}
32+
}
33+
generateTypeScript.finalizedBy dummyRestClient
34+
35+
def countResourceClasses() {
36+
// Get the main source set's output classes directory
37+
def classesDir = project(":model").sourceSets.main.output.classesDirs
38+
def count = 0
39+
40+
// Iterate through all class files
41+
classesDir.files.each { dir ->
42+
dir.eachFileRecurse { file ->
43+
if (file.name.endsWith('.class')) {
44+
// Convert file path to class name and check if it ends with "Resource"
45+
def className = file.absolutePath
46+
.substring(classesDir.asPath.length() + 1)
47+
.replace(File.separator, '.')
48+
.replace('.class', '')
49+
50+
if (className.endsWith('Resource')) {
51+
count++
52+
}
53+
54+
}
55+
}
56+
}
57+
58+
println "Total classes ending with 'Resource': $count"
59+
return count
60+
}
2561

2662
clean {
2763
doLast {

0 commit comments

Comments
 (0)