plugins { id 'org.springframework.boot.conventions' id 'java-base' } description = 'Spring Boot Ant smoke test' configurations { antDependencies testRepository } sourceSets { test } plugins.withType(EclipsePlugin) { eclipse { classpath { plusConfigurations = [configurations.testRuntimeClasspath] } } } dependencies { antDependencies 'org.apache.ivy:ivy:2.4.0' antDependencies project(path: ':spring-boot-project:spring-boot-tools:spring-boot-antlib') testRepository project(path: ':spring-boot-project:spring-boot-tools:spring-boot-loader', configuration: 'mavenRepository') testRepository project(path: ':spring-boot-project:spring-boot-starters:spring-boot-starter', configuration: 'mavenRepository') testImplementation enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) testImplementation project(path: ':spring-boot-project:spring-boot-tools:spring-boot-loader-tools') testImplementation 'org.assertj:assertj-core' testImplementation 'org.junit.jupiter:junit-jupiter' testImplementation 'org.springframework:spring-core' } task syncTestRepository(type: Sync) { destinationDir = file("${buildDir}/test-repository") from configurations.testRepository rename { it.replaceAll('-[0-9]+\\.[0-9]+-[0-9]+\\.', '-SNAPSHOT.') } } ant.importBuild('build.xml') { 'ant' + it } ant.properties['ant-spring-boot.version'] = project.version ant.properties['projectDir'] = project.layout.projectDirectory antresolve { dependsOn syncTestRepository, configurations.antDependencies doFirst { ClassLoader antClassLoader = org.apache.tools.ant.Project.class.classLoader configurations.antDependencies.each { antClassLoader.addURL it.toURI().toURL() } } } task test(type: Test) { dependsOn antbuild testClassesDirs = sourceSets.test.output.classesDirs classpath = sourceSets.test.runtimeClasspath } check { dependsOn test }