| 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') |