-
Notifications
You must be signed in to change notification settings - Fork 107
Expand file tree
/
Copy pathbuild.gradle
More file actions
94 lines (82 loc) · 2.27 KB
/
build.gradle
File metadata and controls
94 lines (82 loc) · 2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
plugins {
id 'org.springframework.boot' version "${springBootVersion}" apply false
id 'com.diffplug.spotless' version '6.25.0'
id 'java' // Add java plugin to root project
}
ext['jedis.version'] = "${jedisVersion}"
allprojects {
version = project.version
group = project.group
description = project.description
repositories {
mavenLocal()
mavenCentral()
}
}
// Apply the Spotless configuration
apply from: "spotless.gradle"
subprojects {
apply from: "$rootDir/gradle/build-conventions.gradle"
}
tasks.register('aggregateTestReport', TestReport) {
destinationDirectory = layout.buildDirectory.dir("reports/tests/aggregate")
testResults.setFrom(
subprojects.collect {
it.tasks.withType(Test)
}
)
}
// Add aggregated Javadoc generation
tasks.register('aggregateJavadoc', Javadoc) {
description = 'Generate aggregated Javadoc for all modules'
group = 'documentation'
source subprojects.findAll {
it.name in [
'redis-om-spring',
'redis-om-spring-ai'
]
}.collect { it.sourceSets.main.allJava }
classpath = files(subprojects.findAll {
it.name in [
'redis-om-spring',
'redis-om-spring-ai'
]
}.collect { it.sourceSets.main.compileClasspath })
destinationDir = layout.buildDirectory.dir("docs/javadoc/aggregate").get().asFile
options {
title = "Redis OM Spring ${project.version} API"
windowTitle = "Redis OM Spring ${project.version}"
author = true
version = true
use = true
splitIndex = true
links(
'https://docs.oracle.com/en/java/javase/21/docs/api/',
'https://docs.spring.io/spring-framework/docs/current/javadoc-api/',
'https://docs.spring.io/spring-data/redis/docs/current/api/',
'https://docs.spring.io/spring-boot/api/java/'
)
}
// Ensure Javadoc generation succeeds
failOnError = false
}
// Individual module Javadocs
tasks.register('generateModuleJavadocs') {
description = 'Generate Javadoc for individual modules'
group = 'documentation'
def moduleProjects = subprojects.findAll {
it.name in [
'redis-om-spring',
'redis-om-spring-ai'
]
}
dependsOn moduleProjects.collect { "${it.name}:javadoc" }
doLast {
moduleProjects.each { project ->
copy {
from project.tasks.javadoc.destinationDir
into layout.buildDirectory.dir("docs/javadoc/modules/${project.name}").get().asFile
}
}
}
}