/build.gradle
Gradle | 953 lines | 838 code | 99 blank | 16 comment | 0 complexity | 97279dc63ebd9fdb31e76a9aa98e87c4 MD5 | raw file
- //description = 'Spring Batch'
- //apply plugin: 'base'
- buildscript {
- repositories {
- maven { url 'https://repo.spring.io/plugins-release' }
- maven { url 'https://plugins.gradle.org/m2/' }
- }
- dependencies {
- classpath 'org.springframework.build.gradle:propdeps-plugin:0.0.7'
- classpath 'io.spring.gradle:spring-io-plugin:0.0.5.RELEASE'
- classpath "io.spring.gradle:dependency-management-plugin:0.6.0.RELEASE"
- classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6.2"
- classpath "org.asciidoctor:asciidoctor-gradle-plugin:1.5.6"
- classpath "org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.16"
- }
- }
- plugins {
- id 'org.sonarqube' version '2.6.2'
- }
- ext {
- linkHomepage = 'https://projects.spring.io/spring-batch/'
- linkCi = 'https://build.spring.io/browse/BATCH'
- linkIssue = 'https://github.com/spring-projects/spring-batch/issues'
- linkScmUrl = 'https://github.com/spring-projects/spring-batch'
- linkScmConnection = 'git://github.com/spring-projects/spring-batch.git'
- linkScmDevConnection = 'git@github.com:spring-projects/spring-batch.git'
- mainProjects = subprojects.findAll { !it.name.endsWith('tests') && !it.name.endsWith('samples') && it.name.startsWith('spring-batch-')}
- }
- allprojects {
- group = 'org.springframework.batch'
- repositories {
- maven { url 'https://repo.spring.io/libs-snapshot' }
- maven { url 'https://repo.spring.io/libs-milestone' }
- maven { url 'https://repo.spring.io/plugins-release' }
- mavenCentral()
- }
- ext {
- environmentProperty = project.hasProperty('environment') ? getProperty('environment') : 'hsql'
- springVersionDefault = '5.2.4.BUILD-SNAPSHOT'
- springVersion = project.hasProperty('springVersion') ? getProperty('springVersion') : springVersionDefault
- springRetryVersion = '1.2.5.RELEASE'
- springAmqpVersion = '2.2.4.BUILD-SNAPSHOT'
- springDataCommonsVersion = '2.3.0.BUILD-SNAPSHOT'
- springDataGemfireVersion = '2.3.0.BUILD-SNAPSHOT'
- springDataJpaVersion = '2.3.0.BUILD-SNAPSHOT'
- springDataMongodbVersion = '3.0.0.BUILD-SNAPSHOT'
- springDataNeo4jVersion = '5.3.0.BUILD-SNAPSHOT'
- springIntegrationVersion = '5.3.0.BUILD-SNAPSHOT'
- springKafkaVersion = '2.4.2.BUILD-SNAPSHOT'
- springLdapVersion = '2.3.2.RELEASE'
- activemqVersion = '5.15.11'
- apacheAvroVersion ='1.9.1'
- aspectjVersion = '1.9.5'
- commonsDdbcpVersion = '2.7.0'
- commonsIoVersion = '2.6'
- commonsLangVersion = '3.9'
- commonsPoolVersion = '1.6'
- derbyVersion = '10.14.2.0'
- groovyVersion = '2.5.10'
- hamcrestVersion = '2.2'
- h2databaseVersion = '1.4.200'
- hibernateVersion = '5.4.9.Final'
- hibernateValidatorVersion = '6.1.0.Final'
- javaxElVersion = '3.0.0'
- hsqldbVersion = '2.5.0'
- jackson2Version = '2.10.1'
- gsonVersion = '2.8.6'
- javaMailVersion = '1.6.2'
- javaxBatchApiVersion = '1.0'
- javaxAnnotationApiVersion = '1.3.2'
- javaxInjectVersion = '1'
- javaxTransactionVersion = '1.3'
- jbatchTckSpi = '1.0'
- jettisonVersion = '1.2' //? => upgrade to 1.4 and the build fails (deprecated anyway via xstream)
- jmsVersion = '2.0.1'
- junitVersion = '4.13'
- junitJupiterVersion = '5.6.2'
- log4jVersion = '2.13.0'
- mysqlVersion = '8.0.18'
- mockitoVersion = '3.1.0'
- postgresqlVersion = '42.2.8'
- quartzVersion = '2.3.2'
- servletApiVersion = '4.0.1'
- sqlfireclientVersion = '1.0.3'
- sqliteVersion = '3.30.1'
- woodstoxVersion = '5.2.0'
- xmlunitVersion = '2.6.3'
- xstreamVersion = '1.4.11.1'
- jrubyVersion = '1.7.27'
- beanshellVersion = '2.0b5'
- jaxbApiVersion = '2.3.1'
- jaxbImplVersion = '2.3.0.1'
- micrometerVersion = '1.3.3'
- prometheusPushgatewayVersion = '0.8.0'
- docResourcesVersion = '0.2.1.RELEASE'
- assertjVersion='3.15.0'
- mongoDbDriverSyncVersion='4.0.0-beta1'
- }
- apply plugin: 'idea'
- }
- configure(subprojects - project(":spring-build-src")) { subproject ->
- apply plugin: 'java'
- apply from: "${rootProject.projectDir}/publish-maven.gradle"
- apply plugin: 'jacoco'
- apply plugin: 'propdeps-idea'
- apply plugin: 'propdeps-eclipse'
- apply plugin: 'merge'
- jacoco {
- toolVersion = "0.8.5"
- }
- compileJava {
- sourceCompatibility=1.8
- targetCompatibility=1.8
- options.encoding='UTF-8'
- }
- compileTestJava {
- sourceCompatibility=1.8
- targetCompatibility=1.8
- options.encoding='UTF-8'
- }
- eclipse {
- project {
- natures += 'org.springframework.ide.eclipse.core.springnature'
- }
- }
- sourceSets {
- test {
- resources {
- srcDirs = ['src/test/resources', 'src/test/java']
- }
- }
- }
- // enable all compiler warnings; individual projects may customize further
- ext.xLintArg = '-Xlint:all'
- [compileJava, compileTestJava]*.options*.compilerArgs = [xLintArg] + '-proc:none'
- tasks.withType(Test).all {
- // suppress all console output during testing unless running `gradle -i`
- logging.captureStandardOutput(LogLevel.INFO)
- systemProperty "ENVIRONMENT", environmentProperty
- jacoco {
- destinationFile = file("$buildDir/jacoco.exec")
- }
- include '**/*Tests.class'
- exclude '**/Abstract*.class'
- }
- test {
- jacoco {
- destinationFile = file("$buildDir/jacoco.exec")
- }
- // testLogging {
- // showStandardStreams = true
- // }
- }
- task sourcesJar(type: Jar) {
- classifier = 'sources'
- from sourceSets.main.allJava
- }
- task javadocJar(type: Jar) {
- classifier = 'javadoc'
- from javadoc
- }
- task checkTestConfigs {
- doLast {
- def configFiles = []
- sourceSets.test.java.srcDirs.each {
- fileTree(it).include('**/*.xml').exclude('**/log4j.xml').each { configFile ->
- def configXml = new XmlParser(false, false).parse(configFile)
- if (configXml.@'xsi:schemaLocation' ==~ /.*spring-[a-z-]*\d\.\d\.xsd.*/) {
- configFiles << configFile
- }
- }
- }
- if (configFiles) {
- throw new InvalidUserDataException('Hardcoded XSD version in the config files:\n' +
- configFiles.collect { relativePath(it) }.join('\n') +
- '\nPlease, use versionless schemaLocations for Spring XSDs to avoid issues with builds on different versions of dependencies.')
- }
- }
- }
- jar {
- manifest.attributes["Created-By"] =
- "${System.getProperty("java.version")} (${System.getProperty("java.specification.vendor")})"
- manifest.attributes["Implementation-Title"] = subproject.name
- manifest.attributes["Implementation-Version"] = subproject.version
- from("${rootProject.projectDir}/src/dist") {
- include "license.txt"
- include "notice.txt"
- into "META-INF"
- expand(copyright: new Date().format("yyyy"), version: project.version)
- }
- }
- test.dependsOn checkTestConfigs
- artifacts {
- archives sourcesJar
- archives javadocJar
- }
- }
- subprojects {
- task allDeps(type: DependencyReportTask) {}
- }
- configure(mainProjects) {
- if (project.hasProperty('platformVersion')) {
- apply plugin: 'spring-io'
- repositories {
- maven { url "https://repo.spring.io/libs-snapshot" }
- }
- dependencyManagement {
- springIoTestRuntime {
- imports {
- mavenBom "io.spring.platform:platform-bom:${platformVersion}"
- }
- }
- }
- }
- }
- project("spring-build-src") {
- description = "Exposes gradle buildSrc for IDE support"
- apply plugin: "groovy"
- dependencies {
- compile gradleApi()
- compile localGroovy()
- }
- configurations.archives.artifacts.clear()
- }
- project('spring-batch-core') {
- description = 'Spring Batch Core'
- dependencies {
- compile project(":spring-batch-infrastructure")
- compile "com.fasterxml.jackson.core:jackson-databind:${jackson2Version}"
- compile ("org.codehaus.jettison:jettison:$jettisonVersion") {
- exclude group: 'stax', module: 'stax-api'
- }
- compile "org.springframework:spring-aop:$springVersion"
- compile "org.springframework:spring-beans:$springVersion"
- compile "org.springframework:spring-context:$springVersion"
- compile "org.springframework:spring-core:$springVersion"
- compile "org.springframework:spring-tx:$springVersion"
- compile "javax.batch:javax.batch-api:$javaxBatchApiVersion"
- compile "io.micrometer:micrometer-core:$micrometerVersion"
- testCompile "org.springframework:spring-test:$springVersion"
- testCompile "org.mockito:mockito-core:$mockitoVersion"
- testCompile "javax.inject:javax.inject:$javaxInjectVersion"
- testCompile "org.hsqldb:hsqldb:$hsqldbVersion"
- testCompile "com.h2database:h2:$h2databaseVersion"
- testCompile "commons-io:commons-io:$commonsIoVersion"
- testCompile "org.apache.commons:commons-dbcp2:$commonsDdbcpVersion"
- testCompile "junit:junit:${junitVersion}"
- testCompile "org.hamcrest:hamcrest-library:$hamcrestVersion"
- optional "com.ibm.jbatch:com.ibm.jbatch-tck-spi:$jbatchTckSpi"
- optional "com.thoughtworks.xstream:xstream:$xstreamVersion"
- optional "org.aspectj:aspectjrt:$aspectjVersion"
- optional "org.aspectj:aspectjweaver:$aspectjVersion"
- optional "org.springframework:spring-jdbc:$springVersion"
- optional "org.apache.logging.log4j:log4j-api:$log4jVersion"
- optional "org.apache.logging.log4j:log4j-core:$log4jVersion"
- optional "javax.annotation:javax.annotation-api:$javaxAnnotationApiVersion"
- // JSR-305 only used for non-required meta-annotations
- compileOnly("com.google.code.findbugs:jsr305:3.0.2")
- testCompileOnly("com.google.code.findbugs:jsr305:3.0.2")
- }
- }
- project('spring-batch-infrastructure') {
- description = 'Spring Batch Infrastructure'
- dependencies {
- compile "org.springframework:spring-core:$springVersion"
- compile "org.springframework.retry:spring-retry:$springRetryVersion"
- testCompile "org.apache.logging.log4j:log4j-api:$log4jVersion"
- testCompile "org.apache.logging.log4j:log4j-core:$log4jVersion"
- testCompile "commons-io:commons-io:$commonsIoVersion"
- testCompile "org.apache.commons:commons-dbcp2:$commonsDdbcpVersion"
- testCompile "org.hsqldb:hsqldb:$hsqldbVersion"
- testCompile "com.h2database:h2:$h2databaseVersion"
- testCompile "org.apache.derby:derby:$derbyVersion"
- testCompile "org.springframework:spring-test:$springVersion"
- testCompile "junit:junit:${junitVersion}"
- testCompile "org.hamcrest:hamcrest-library:$hamcrestVersion"
- testCompile "org.aspectj:aspectjrt:$aspectjVersion"
- testCompile "org.aspectj:aspectjweaver:$aspectjVersion"
- testCompile "org.mockito:mockito-core:$mockitoVersion"
- testCompile "org.xerial:sqlite-jdbc:$sqliteVersion"
- testCompile "javax.xml.bind:jaxb-api:$jaxbApiVersion"
- testCompile "org.springframework.kafka:spring-kafka-test:$springKafkaVersion"
- testCompile "org.assertj:assertj-core:$assertjVersion"
- testRuntime "com.sun.mail:javax.mail:$javaMailVersion"
- testRuntime "org.codehaus.groovy:groovy-jsr223:$groovyVersion"
- testRuntime "org.jruby:jruby:$jrubyVersion"
- testRuntime "org.hibernate.validator:hibernate-validator:$hibernateValidatorVersion"
- testRuntime "org.glassfish:javax.el:$javaxElVersion"
- testRuntime "org.beanshell:bsh:$beanshellVersion"
- testRuntime "com.sun.xml.bind:jaxb-core:$jaxbImplVersion"
- testRuntime "com.sun.xml.bind:jaxb-impl:$jaxbImplVersion"
- testRuntime "org.mongodb:mongodb-driver-sync:$mongoDbDriverSyncVersion"
- optional "javax.jms:javax.jms-api:$jmsVersion"
- optional "com.fasterxml.jackson.core:jackson-databind:${jackson2Version}"
- optional "com.google.code.gson:gson:${gsonVersion}"
- compile("org.hibernate:hibernate-core:$hibernateVersion") { dep ->
- optional dep
- exclude group: 'org.jboss.spec.javax.transaction', module: 'jboss-transaction-api_1.1_spec'
- }
- compile("org.hibernate:hibernate-entitymanager:$hibernateVersion") { dep ->
- optional dep
- exclude group: 'org.jboss.spec.javax.transaction', module: 'jboss-transaction-api_1.1_spec'
- }
- optional "org.hibernate.validator:hibernate-validator:$hibernateValidatorVersion"
- optional "javax.transaction:javax.transaction-api:$javaxTransactionVersion"
- optional "javax.mail:javax.mail-api:$javaMailVersion"
- optional "javax.batch:javax.batch-api:$javaxBatchApiVersion"
- compile("org.springframework:spring-oxm:$springVersion") { dep ->
- optional dep
- exclude group: 'commons-lang', module: 'commons-lang'
- }
- optional "org.springframework:spring-aop:$springVersion"
- optional "org.springframework:spring-context:$springVersion"
- compile("org.springframework:spring-context-support:$springVersion") { dep ->
- optional dep
- }
- optional "org.springframework:spring-jdbc:$springVersion"
- optional "org.springframework:spring-jms:$springVersion"
- optional "org.springframework:spring-orm:$springVersion"
- optional "org.springframework:spring-tx:$springVersion"
- optional "org.springframework.data:spring-data-commons:$springDataCommonsVersion"
- optional "org.springframework.data:spring-data-mongodb:$springDataMongodbVersion"
- optional ("org.springframework.data:spring-data-neo4j:$springDataNeo4jVersion") {
- exclude group: "org.springframework", module: "spring-aspects"
- }
- optional "org.springframework.data:spring-data-gemfire:$springDataGemfireVersion"
- compile("com.fasterxml.woodstox:woodstox-core:$woodstoxVersion") { dep ->
- optional dep
- exclude group: 'stax', module: 'stax-api'
- }
- optional "org.springframework.amqp:spring-amqp:$springAmqpVersion"
- optional ("org.springframework.amqp:spring-rabbit:$springAmqpVersion") {
- exclude group: "org.springframework", module: "spring-messaging"
- exclude group: "org.springframework", module: "spring-web"
- }
- optional "org.springframework.ldap:spring-ldap-core:$springLdapVersion"
- optional "org.springframework.ldap:spring-ldap-core-tiger:$springLdapVersion"
- optional "org.springframework.ldap:spring-ldap-ldif-core:$springLdapVersion"
- optional "org.springframework.kafka:spring-kafka:$springKafkaVersion"
- optional "org.apache.avro:avro:$apacheAvroVersion"
- // JSR-305 only used for non-required meta-annotations
- compileOnly("com.google.code.findbugs:jsr305:3.0.2")
- testCompileOnly("com.google.code.findbugs:jsr305:3.0.2")
- }
- if (project.hasProperty('platformVersion')) {
- def dataNeo4jVersion = dependencyManagement.springIoTestRuntime.managedVersions['org.springframework.data:spring-data-neo4j']
- if (dataNeo4jVersion?.startsWith('4.')) {
- tasks.withType(Test).matching { it.name =~ "springIoJdk.Test" }.all {
- exclude '**/Neo4jItemReaderTests.class'
- }
- }
- }
- }
- project('spring-batch-docs') {
- description = 'Spring Batch Docs'
- }
- project('spring-batch-core-tests') {
- description = 'Spring Batch Core Tests'
- project.tasks.findByPath("artifactoryPublish")?.enabled = false
- dependencies {
- compile project(":spring-batch-core")
- compile project(":spring-batch-infrastructure")
- compile "org.apache.commons:commons-dbcp2:$commonsDdbcpVersion"
- compile "org.springframework:spring-jdbc:$springVersion"
- compile "org.springframework.retry:spring-retry:$springRetryVersion"
- compile "org.springframework:spring-tx:$springVersion"
- compile "org.springframework:spring-aop:$springVersion"
- testCompile "org.hsqldb:hsqldb:$hsqldbVersion"
- testCompile "commons-io:commons-io:$commonsIoVersion"
- testCompile "org.apache.derby:derby:$derbyVersion"
- testCompile "junit:junit:${junitVersion}"
- testCompile "org.hamcrest:hamcrest-library:$hamcrestVersion"
- testCompile "org.apache.logging.log4j:log4j-api:$log4jVersion"
- testCompile "org.apache.logging.log4j:log4j-core:$log4jVersion"
- testCompile "org.springframework:spring-test:$springVersion"
- testCompile "org.springframework:spring-jdbc:$springVersion"
- runtime "mysql:mysql-connector-java:$mysqlVersion"
- runtime "org.postgresql:postgresql:$postgresqlVersion"
- runtime "javax.batch:javax.batch-api:$javaxBatchApiVersion"
- optional "org.aspectj:aspectjrt:$aspectjVersion"
- optional "org.aspectj:aspectjweaver:$aspectjVersion"
- optional "org.springframework.ldap:spring-ldap-core:$springLdapVersion"
- optional "org.springframework.ldap:spring-ldap-core-tiger:$springLdapVersion"
- optional "org.springframework.ldap:spring-ldap-ldif-core:$springLdapVersion"
- }
- test {
- enabled = project.hasProperty('alltests')
- }
- }
- project('spring-batch-infrastructure-tests') {
- description = 'Spring Batch Infrastructure Tests'
- project.tasks.findByPath("artifactoryPublish")?.enabled = false
- dependencies {
- compile project(":spring-batch-infrastructure")
- compile "javax.jms:javax.jms-api:$jmsVersion"
- compile "org.apache.commons:commons-dbcp2:$commonsDdbcpVersion"
- compile "org.springframework:spring-tx:$springVersion"
- compile "org.springframework:spring-aop:$springVersion"
- testCompile "org.hsqldb:hsqldb:$hsqldbVersion"
- testCompile "commons-io:commons-io:$commonsIoVersion"
- testCompile "org.apache.derby:derby:$derbyVersion"
- testCompile "org.apache.activemq:activemq-broker:$activemqVersion"
- testCompile "org.apache.activemq:activemq-kahadb-store:$activemqVersion"
- testCompile "junit:junit:${junitVersion}"
- testCompile "org.hamcrest:hamcrest-library:$hamcrestVersion"
- testCompile "org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec:1.0.1"
- testCompile "org.xmlunit:xmlunit-core:$xmlunitVersion"
- testCompile "org.xmlunit:xmlunit-matchers:$xmlunitVersion"
- testCompile "org.apache.logging.log4j:log4j-api:$log4jVersion"
- testCompile "org.apache.logging.log4j:log4j-core:$log4jVersion"
- testCompile "com.thoughtworks.xstream:xstream:$xstreamVersion"
- testCompile("com.fasterxml.woodstox:woodstox-core:$woodstoxVersion") {
- exclude group: 'stax', module: 'stax-api'
- }
- testCompile "org.apache.commons:commons-lang3:$commonsLangVersion"
- testCompile("org.springframework:spring-oxm:$springVersion") {
- exclude group: 'commons-lang', module: 'commons-lang'
- }
- testCompile "org.springframework:spring-jdbc:$springVersion"
- testCompile "org.springframework:spring-test:$springVersion"
- testCompile "org.mockito:mockito-core:$mockitoVersion"
- testCompile "javax.xml.bind:jaxb-api:$jaxbApiVersion"
- compile("org.hibernate:hibernate-core:$hibernateVersion") { dep ->
- optional dep
- exclude group: 'org.jboss.spec.javax.transaction', module: 'jboss-transaction-api_1.1_spec'
- }
- compile("org.hibernate:hibernate-entitymanager:$hibernateVersion") { dep ->
- optional dep
- exclude group: 'org.jboss.spec.javax.transaction', module: 'jboss-transaction-api_1.1_spec'
- }
- optional "javax.transaction:javax.transaction-api:1.2"
- optional "org.springframework:spring-orm:$springVersion"
- optional "org.springframework:spring-jms:$springVersion"
- runtime "mysql:mysql-connector-java:$mysqlVersion"
- runtime "org.postgresql:postgresql:$postgresqlVersion"
- }
- test {
- enabled = project.hasProperty('alltests')
- }
- }
- //Domain for batch job testing
- project('spring-batch-test') {
- description = 'Spring Batch Test'
- dependencies {
- compile project(":spring-batch-core")
- compile "junit:junit:${junitVersion}"
- compile "org.springframework:spring-test:$springVersion"
- compile "org.springframework:spring-jdbc:$springVersion"
- testCompile "org.hamcrest:hamcrest-library:$hamcrestVersion"
- testCompile "org.apache.commons:commons-dbcp2:$commonsDdbcpVersion"
- testCompile "org.hsqldb:hsqldb:$hsqldbVersion"
- testCompile "org.mockito:mockito-core:$mockitoVersion"
- testRuntime "org.junit.jupiter:junit-jupiter-engine:$junitJupiterVersion"
- optional "org.aspectj:aspectjrt:$aspectjVersion"
- optional "javax.batch:javax.batch-api:$javaxBatchApiVersion"
- optional "org.junit.jupiter:junit-jupiter-api:$junitJupiterVersion"
- }
- }
- project('spring-batch-integration') {
- description = 'Batch Integration'
- dependencies {
- compile project(":spring-batch-core")
- compile "org.springframework.retry:spring-retry:$springRetryVersion"
- compile "org.springframework:spring-context:$springVersion"
- compile "org.springframework:spring-messaging:$springVersion"
- compile "org.springframework:spring-aop:$springVersion"
- compile "org.springframework.integration:spring-integration-core:$springIntegrationVersion"
- compile "org.springframework:spring-tx:$springVersion"
- testCompile project(":spring-batch-test")
- testCompile "org.apache.activemq:activemq-broker:$activemqVersion"
- testCompile "org.apache.activemq:activemq-kahadb-store:$activemqVersion"
- testCompile "junit:junit:${junitVersion}"
- testCompile "org.hamcrest:hamcrest-library:$hamcrestVersion"
- testCompile "org.aspectj:aspectjrt:$aspectjVersion"
- testCompile "org.aspectj:aspectjweaver:$aspectjVersion"
- testCompile "org.apache.commons:commons-dbcp2:$commonsDdbcpVersion"
- testCompile "com.h2database:h2:$h2databaseVersion"
- testCompile "mysql:mysql-connector-java:$mysqlVersion"
- testCompile "org.apache.derby:derby:$derbyVersion"
- testCompile "org.hsqldb:hsqldb:$hsqldbVersion"
- testCompile "org.springframework:spring-test:$springVersion"
- testCompile "org.mockito:mockito-core:$mockitoVersion"
- testCompile("org.springframework.integration:spring-integration-test:$springIntegrationVersion") {
- exclude group: 'junit', module: 'junit-dep'
- exclude group:'org.hamcrest', module:'hamcrest-all'
- }
- testCompile "org.springframework.integration:spring-integration-jdbc:$springIntegrationVersion"
- optional "javax.jms:javax.jms-api:$jmsVersion"
- optional "org.apache.logging.log4j:log4j-api:$log4jVersion"
- optional "org.apache.logging.log4j:log4j-core:$log4jVersion"
- optional "org.springframework.integration:spring-integration-jms:$springIntegrationVersion"
- optional "org.springframework:spring-jms:$springVersion"
- optional "javax.batch:javax.batch-api:$javaxBatchApiVersion"
- // JSR-305 only used for non-required meta-annotations
- compileOnly("com.google.code.findbugs:jsr305:3.0.2")
- }
- }
- project('spring-batch-samples') {
- description = 'Batch Batch Samples'
- project.tasks.findByPath("artifactoryPublish")?.enabled = false
- dependencies {
- compile project(":spring-batch-integration")
- compile "org.aspectj:aspectjrt:$aspectjVersion"
- compile "org.aspectj:aspectjweaver:$aspectjVersion"
- compile "org.quartz-scheduler:quartz:$quartzVersion"
- compile "commons-io:commons-io:$commonsIoVersion"
- compile "org.apache.commons:commons-dbcp2:$commonsDdbcpVersion"
- compile "com.thoughtworks.xstream:xstream:$xstreamVersion"
- compile("com.fasterxml.woodstox:woodstox-core:$woodstoxVersion") {
- exclude group: 'stax', module: 'stax-api'
- }
- compile("org.hibernate:hibernate-core:$hibernateVersion") { dep ->
- optional dep
- exclude group: 'org.jboss.spec.javax.transaction', module: 'jboss-transaction-api_1.1_spec'
- }
- compile("org.hibernate:hibernate-entitymanager:$hibernateVersion") { dep ->
- optional dep
- exclude group: 'org.jboss.spec.javax.transaction', module: 'jboss-transaction-api_1.1_spec'
- }
- compile "javax.transaction:javax.transaction-api:$javaxTransactionVersion"
- compile "org.springframework:spring-aop:$springVersion"
- compile("org.springframework:spring-oxm:$springVersion") {
- exclude group: 'commons-lang', module: 'commons-lang'
- }
- compile "org.springframework:spring-core:$springVersion"
- compile "org.springframework:spring-context-support:$springVersion"
- compile "org.springframework:spring-jdbc:$springVersion"
- compile "org.springframework:spring-orm:$springVersion"
- compile "org.springframework:spring-tx:$springVersion"
- compile "org.springframework.data:spring-data-jpa:$springDataJpaVersion"
- compile "javax.mail:javax.mail-api:$javaMailVersion"
- compile "org.apache.activemq:activemq-client:$activemqVersion"
- compile "org.apache.activemq:activemq-broker:$activemqVersion"
- compile "io.micrometer:micrometer-registry-prometheus:$micrometerVersion"
- compile "io.prometheus:simpleclient_pushgateway:$prometheusPushgatewayVersion"
- compile "org.mongodb:mongodb-driver-sync:$mongoDbDriverSyncVersion"
- testCompile "org.xmlunit:xmlunit-core:$xmlunitVersion"
- testCompile "org.xmlunit:xmlunit-matchers:$xmlunitVersion"
- testCompile project(":spring-batch-test")
- testCompile "junit:junit:${junitVersion}"
- testCompile "org.hamcrest:hamcrest-library:$hamcrestVersion"
- testCompile "org.hsqldb:hsqldb:$hsqldbVersion"
- testCompile "org.apache.logging.log4j:log4j-api:$log4jVersion"
- testCompile "org.apache.logging.log4j:log4j-core:$log4jVersion"
- testCompile "org.codehaus.groovy:groovy:$groovyVersion"
- testCompile "org.codehaus.groovy:groovy-ant:$groovyVersion"
- testCompile "org.springframework:spring-test:$springVersion"
- testCompile "org.mockito:mockito-core:$mockitoVersion"
- testCompile "org.apache.activemq:activemq-kahadb-store:$activemqVersion"
- testRuntime "com.sun.mail:javax.mail:$javaMailVersion"
- testRuntime "org.hibernate.validator:hibernate-validator:$hibernateValidatorVersion"
- testRuntime "org.glassfish:javax.el:$javaxElVersion"
- testRuntime "javax.xml.bind:jaxb-api:$jaxbApiVersion"
- testRuntime "com.sun.xml.bind:jaxb-core:$jaxbImplVersion"
- testRuntime "com.sun.xml.bind:jaxb-impl:$jaxbImplVersion"
- provided "mysql:mysql-connector-java:$mysqlVersion"
- provided "com.h2database:h2:$h2databaseVersion"
- provided "javax.servlet:javax.servlet-api:$servletApiVersion"
- optional "com.vmware.sqlfire:sqlfireclient:$sqlfireclientVersion"
- optional "org.apache.derby:derby:$derbyVersion"
- optional "org.postgresql:postgresql:$postgresqlVersion"
- optional "org.springframework:spring-web:$springVersion"
- optional "org.springframework.data:spring-data-commons:$springDataCommonsVersion"
- optional "org.springframework.data:spring-data-mongodb:$springDataMongodbVersion"
- optional "org.springframework.amqp:spring-amqp:$springAmqpVersion"
- optional ("org.springframework.amqp:spring-rabbit:$springAmqpVersion") {
- exclude group: "org.springframework", module: "spring-messaging"
- exclude group: "org.springframework", module: "spring-web"
- }
- optional "javax.inject:javax.inject:1"
- optional "javax.batch:javax.batch-api:$javaxBatchApiVersion"
- }
- }
- apply plugin: "org.asciidoctor.convert"
- asciidoctorj {
- version = '1.5.5'
- }
- configurations {
- docs
- }
- dependencies {
- docs "io.spring.docresources:spring-doc-resources:${docResourcesVersion}@zip"
- }
- task prepareAsciidocBuild(type: Sync) {
- dependsOn configurations.docs
- // copy doc resources
- from {
- configurations.docs.collect { zipTree(it) }
- }
- // and doc sources
- from "spring-batch-docs/asciidoc/"
- // to a build directory of your choice
- into "$buildDir/asciidoc/assemble"
- }
- task('makePDF', type: org.asciidoctor.gradle.AsciidoctorTask){
- dependsOn prepareAsciidocBuild
- backends 'pdf'
- sourceDir "$buildDir/asciidoc/assemble"
- sources {
- include 'index-single.adoc'
- }
- options doctype: 'book', eruby: 'erubis'
- logDocuments = true
- attributes 'icons': 'font',
- 'sectanchors': '',
- 'sectnums': '',
- 'toc': '',
- 'source-highlighter' : 'coderay',
- revnumber: project.version
- }
- asciidoctor {
- dependsOn makePDF
- backends 'html5'
- sourceDir "$buildDir/asciidoc/assemble"
- resources {
- from(sourceDir) {
- include 'images/*', 'css/**', 'js/**'
- }
- }
- options doctype: 'book', eruby: 'erubis'
- logDocuments = true
- attributes 'docinfo': 'shared',
- // use provided stylesheet
- stylesdir: "css/",
- stylesheet: 'spring.css',
- 'linkcss': true,
- 'icons': 'font',
- 'sectanchors': '',
- // use provided highlighter
- 'source-highlighter=highlight.js',
- 'highlightjsdir=js/highlight',
- 'highlightjs-theme=github',
- 'idprefix': '',
- 'idseparator': '-',
- 'spring-version': project.version,
- 'allow-uri-read': '',
- revnumber: project.version
- }
- apply plugin: 'org.sonarqube'
- sonarqube {
- properties {
- property "sonar.projectName", "Spring Batch"
- property "sonar.jacoco.reportPath", "${buildDir.name}/jacoco.exec"
- property "sonar.links.homepage", linkHomepage
- property "sonar.links.ci", linkCi
- property "sonar.links.issue", linkIssue
- property "sonar.links.scm", linkScmUrl
- property "sonar.links.scm_dev", linkScmDevConnection
- property "sonar.java.coveragePlugin", "jacoco"
- }
- }
- task api(type: Javadoc) {
- group = 'Documentation'
- description = 'Generates aggregated Javadoc API documentation.'
- title = "Spring Batch ${version} API"
- options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
- options.author = true
- options.header = 'Spring Batch'
- options.overview = 'src/api/overview.html'
- if (JavaVersion.current().isJava8Compatible()) {
- options.addStringOption('Xdoclint:none', '-quiet')
- }
- source subprojects
- .findAll { it.name != 'spring-batch-samples' && !it.name.endsWith("-tests") }
- .collect { project -> project.sourceSets.main.allJava }
- destinationDir = new File(buildDir, "api")
- classpath = files(subprojects.collect { project ->
- project.sourceSets.main.compileClasspath
- })
- }
- task schemaZip(type: Zip) {
- group = 'Distribution'
- classifier = 'schema'
- description = "Builds -${classifier} archive containing all " +
- "XSDs for deployment at static.springframework.org/schema."
- subprojects.each { subproject ->
- def Properties schemas = new Properties();
- def shortName = subproject.name.replaceFirst("${rootProject.name}-", '')
- if (subproject.name.endsWith("-core")) {
- shortName = ''
- }
- subproject.sourceSets.main.resources.find {
- it.path.endsWith("META-INF${File.separator}spring.schemas")
- }?.withInputStream { schemas.load(it) }
- for (def key : schemas.keySet()) {
- File xsdFile = subproject.sourceSets.main.resources.find {
- it.path.replaceAll('\\\\', '/').endsWith(schemas.get(key))
- }
- assert xsdFile != null
- into ("batch/${shortName}") {
- from xsdFile.path
- }
- }
- }
- }
- task docsZip(type: Zip) {
- group = 'Distribution'
- classifier = 'docs'
- description = "Builds -${classifier} archive containing api and reference " +
- "for deployment at static.springframework.org/spring-batch/reference."
- from('src/dist') {
- include 'changelog.txt'
- }
- from (api) {
- into 'api'
- }
- from (makePDF) {
- include "index-single.pdf"
- rename 'index-single.pdf', 'spring-batch-reference.pdf'
- into 'reference/pdf'
- }
- from (asciidoctor) {
- include "*.html"
- include "css/**"
- include "js/**"
- include "images/**"
- into 'reference/html'
- }
- }
- task distZip(type: Zip, dependsOn: [docsZip, schemaZip]) {
- group = 'Distribution'
- classifier = 'dist'
- description = "Builds -${classifier} archive, containing all jars and docs, " +
- "suitable for community download page."
- ext.baseDir = "${project.name}-${project.version}";
- from('src/dist') {
- include 'readme.txt'
- include 'license.txt'
- include 'notice.txt'
- into "${baseDir}"
- expand(copyright: new Date().format("yyyy"), version: project.version)
- }
- from(zipTree(docsZip.archivePath)) {
- into "${baseDir}/docs"
- }
- from(zipTree(schemaZip.archivePath)) {
- into "${baseDir}/schema"
- }
- [project(':spring-batch-core'), project(':spring-batch-infrastructure'), project(':spring-batch-test'), project(':spring-batch-integration')].each { subproject ->
- into ("${baseDir}/libs") {
- from subproject.jar
- from subproject.sourcesJar
- from subproject.javadocJar
- }
- }
- }
- // Create an optional "with dependencies" distribution.
- // Not published by default; only for use when building from source.
- task depsZip(type: Zip, dependsOn: distZip) { zipTask ->
- group = 'Distribution'
- classifier = 'dist-with-deps'
- description = "Builds -${classifier} archive, containing everything " +
- "in the -${distZip.classifier} archive plus all dependencies."
- from zipTree(distZip.archivePath)
- gradle.taskGraph.whenReady { taskGraph ->
- if (taskGraph.hasTask(":${zipTask.name}")) {
- def projectNames = rootProject.subprojects*.name
- def artifacts = new HashSet()
- subprojects.each { subproject ->
- subproject.configurations.runtime.resolvedConfiguration.resolvedArtifacts.each { artifact ->
- def dependency = artifact.moduleVersion.id
- if (!projectNames.contains(dependency.name)) {
- artifacts << artifact.file
- }
- }
- }
- zipTask.from(artifacts) {
- into "${distZip.baseDir}/deps"
- }
- }
- }
- }
- artifacts {
- archives distZip
- archives docsZip
- archives schemaZip
- }
- task dist(dependsOn: assemble) {
- group = 'Distribution'
- description = 'Builds -dist, -docs and -schema distribution archives.'
- }
- task runTck(dependsOn: subprojects.compileJava) {
- configurations {
- tck {
- transitive = true
- }
- antcp {
- transitive = true
- exclude module: 'ant'
- }
- }
- dependencies {
- tck project(":spring-batch-core")
- tck "commons-pool:commons-pool:$commonsPoolVersion"
- tck "javax.batch:javax.batch-api:$javaxBatchApiVersion"
- tck "org.springframework:spring-core:$springVersion"
- tck "org.springframework:spring-context:$springVersion"
- tck "org.springframework:spring-beans:$springVersion"
- tck 'commons-logging:commons-logging-api:1.1'
- tck "org.springframework:spring-aop:$springVersion"
- tck "org.springframework:spring-tx:$springVersion"
- tck "org.springframework.retry:spring-retry:$springRetryVersion"
- tck "org.hsqldb:hsqldb:$hsqldbVersion"
- tck "org.springframework:spring-jdbc:$springVersion"
- tck "com.thoughtworks.xstream:xstream:$xstreamVersion"
- tck "org.codehaus.jettison:jettison:$jettisonVersion"
- tck "org.apache.commons:commons-dbcp2:$commonsDdbcpVersion"
- tck "org.apache.derby:derby:$derbyVersion"
- antcp "ant-contrib:ant-contrib:1.0b3"
- }
- doLast {
- logger.info('tck dependencies: ' + configurations.tck.asPath)
- def tckHome = project.hasProperty('TCK_HOME') ? getProperty('TCK_HOME') : System.getenv("JSR_352_TCK_HOME")
- assert tckHome : '''\
- tckHome is not set. Please set either the environment variable 'JSR_352_TCK_HOME'
- or specify the Gradle property `TCK_HOME`, e.g: ./gradlew runTck -PTCK_HOME=/path/to/tck'''
- println "Using the JSR 352 TCK at: '$tckHome'"
- ant.taskdef resource: "net/sf/antcontrib/antcontrib.properties",
- classpath: configurations.antcp.asPath
- ant.properties['batch.impl.classes'] = configurations.tck.asPath
- ant.ant antfile: "$tckHome/build.xml", target: "run", dir: "$tckHome"
- }
- }
- wrapper {
- description = 'Generates gradlew[.bat] scripts'
- gradleVersion = '6.3'
- }