@@ -20,13 +20,67 @@ jar {
2020 }
2121}
2222
23+ // Pre-cache Maven dependencies for smoke tests projects during build phase
24+ tasks. register(' mvnBuild' ) {
25+ description = ' Pre-cache Maven dependencies for all test projects'
26+
27+ inputs. files fileTree(" $projectDir /src/test/resources" ) {
28+ include " **/pom.xml"
29+ include " **/settings.xml"
30+ }
31+ outputs. dir " $projectDir /.gradle/maven-dependencies-cache"
32+
33+ doLast {
34+ file(" $projectDir /.gradle/maven-dependencies-cache" ). mkdirs()
35+
36+ def pomFiles = fileTree(" $projectDir /src/test/resources" ) {
37+ include " **/pom.xml"
38+ }
39+
40+ def processedProjects = [] as Set
41+
42+ pomFiles. each { pomFile ->
43+ def projectDir = pomFile. parentFile
44+ def projectKey = projectDir. name
45+
46+ if (! processedProjects. contains(projectKey)) {
47+ processedProjects. add(projectKey)
48+
49+ logger. info(" Pre-caching dependencies for Maven project: ${ projectKey} " )
50+
51+ def processBuilder = new ProcessBuilder ()
52+ processBuilder. directory(projectDir)
53+ processBuilder. command(" $rootDir /mvnw" , " dependency:go-offline" , " -B" )
54+
55+ // Handle proxy configuration if available
56+ if (project. hasProperty(" mavenRepositoryProxy" )) {
57+ processBuilder. environment(). put(" MAVEN_REPOSITORY_PROXY" , project. property(" mavenRepositoryProxy" ))
58+ }
59+
60+ def process = processBuilder. start()
61+ def exitCode = process. waitFor()
62+
63+ if (exitCode != 0 ) {
64+ logger. warn(" Failed to cache dependencies for project ${ projectKey} , exit code: ${ exitCode} " )
65+ } else {
66+ logger. info(" Successfully cached dependencies for project: ${ projectKey} " )
67+ }
68+ }
69+ }
70+ }
71+ }
72+
73+ tasks. named(" compileTestGroovy" ). configure {
74+ dependsOn ' mvnBuild'
75+ }
76+
2377tasks. withType(Test ). configureEach {
2478 dependsOn " shadowJar"
2579 jvmArgs " -Ddatadog.smoketest.maven.jar.path=${ tasks.shadowJar.archiveFile.get()} "
2680
2781 // overriding the default timeout set in configure_tests.gradle, as Maven smoke
2882 // tests might run for a longer duration
29- timeout = Duration . of(20 , ChronoUnit . MINUTES )
83+ timeout = Duration . of(15 , ChronoUnit . MINUTES )
3084
3185 if (project. hasProperty(" mavenRepositoryProxy" )) {
3286 // propagate proxy URL to tests, to then propagate it to nested Gradle builds
0 commit comments