blob: b24935a483defe6dac5e5130a76b8998746faf26 [file] [log] [blame]
plugins {
id 'groovy'
id 'java-library'
id 'java-test-fixtures'
}
version = projectVersion
group = 'org.apache.grails'
apply plugin: 'org.apache.grails.gradle.grails-plugin'
ext {
apiDocs = true
pomArtifactId = 'grails-data-mongodb'
pomTitle = 'GORM for MongoDB'
pomDescription = 'Provides a GORM Object Mapping implementations for the MongoDB Document Database'
pomDevelopers = [
'graemerocher': 'Graeme Rocher',
'jeffscottbrown': 'Jeff Brown',
'burtbeckwith': 'Burt Beckwith'
]
}
dependencies {
implementation platform("org.apache.grails:grails-bom:$grailsVersion")
testFixturesCompileOnly platform("org.apache.grails:grails-bom:$grailsVersion")
api project(':mongodb-core'), {
// api: needed as classes should also be available when compiling apps. eg. MongoEntity
// impl: MongoDatastore, MongoDbDataStoreSpringInitializer
if (excludeUnusedTransDeps) {
// API dependencies in grails-data-mongodb
//exclude group: 'org.apache.grails.data', module: 'grails-data-mongodb-bson' // Needed at runtime downstream (BsonPersistentEntityCodec)
exclude group: 'org.apache.grails.data', module: 'grails-datastore-core'
exclude group: 'org.apache.grails.data', module: 'grails-datamapping-core'
exclude group: 'org.apache.grails.data', module: 'grails-datamapping-support'
//exclude group: 'org.mongodb', module: 'bson' // Needed downstream for compiling MongoEntity
//exclude group: 'org.mongodb', module: 'mongodb-driver-core' // MongoClientSettings
//exclude group: 'org.mongodb', module: 'mongodb-driver-sync' // MongoClient
exclude group: 'org.springframework', module: 'spring-context'
}
}
implementation project(':grails-datamapping-support'), {
// impl: ConfigSupport
if (excludeUnusedTransDeps) {
// API dependencies in grails-datamapping-support
exclude group: 'org.apache.grails.data', module: 'grails-datastore-core'
//exclude group: 'org.apache.grails.data, module: 'grails-datamapping-core' // AbstractDatastorePersistenceContextInterceptor
exclude group: 'org.apache.grails', module: 'grails-core'
exclude group: 'org.springframework', module: 'spring-context'
exclude group: 'org.springframework', module: 'spring-core'
}
}
implementation 'org.springframework:spring-beans', {
// impl: BeanDefinitionRegistry
}
implementation 'org.springframework:spring-context', {
// impl: ConfigurableApplicationContext
}
implementation 'org.springframework:spring-core', {
// impl: PropertyResolver
}
implementation 'org.springframework:spring-tx', {
// impl: PlatformTransactionManager
}
compileOnly 'org.apache.groovy:groovy' // Provided as this is a Grails plugin
compileOnly 'org.apache.grails:grails-core', { // Provided as this is a Grails plugin
// api: GrailsPlugin
// impl: DomainClassArtefactHandler, GrailsClass, GrailsPlugin, Metadata
}
runtimeOnly project(':mongodb-ext'), {
// Include MongoDB groovy extensions for applications
}
testFixturesApi 'org.apache.grails:grails-core', {
// api: Config
// impl: PropertySourcesConfig
}
testFixturesApi project(':mongodb-core'), {
// api: MongoDatastore
}
testFixturesApi 'org.mongodb:mongodb-driver-sync', {
// api: MongoClient
}
testFixturesImplementation 'org.springframework:spring-core', {
// impl: PropertyResolver
}
testFixturesImplementation 'org.springframework.boot:spring-boot', {
// impl: PropertySourceLoader
}
testFixturesImplementation 'org.spockframework:spock-core'
testFixturesCompileOnly 'org.apache.groovy:groovy'
}
def disabledTasks = ['bootRun', 'bootTestRun']
disabledTasks.each { taskName ->
tasks.named(taskName) {
enabled = false
}
}
tasks.named('groovydoc') {
source += sourceSets.testFixtures.allSource
}
apply from: rootProject.layout.projectDirectory.file('gradle/java-config.gradle')
apply from: rootProject.layout.projectDirectory.file('gradle/mongodb-test-config.gradle')
apply from: rootProject.layout.projectDirectory.file('gradle/publish-config.gradle')