plugins {
    id 'org.springframework.boot' version '2.7.6'
    id "org.sonarqube" version "2.7"
    id 'io.spring.dependency-management' version '1.0.14.RELEASE'
    id 'java'
    id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'
}

group = 'com.icom'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
//sourceCompatibility = '1.8'
apply plugin: 'war'
configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
    all{
        exclude group: 'org.apache.logging.log4j', module: 'log4j-slf4j-impl'
    }
}

repositories {
    mavenCentral()
    maven { url "https://maven.egovframe.go.kr/maven/" } // egovframe maven 원격 저장소
    maven {
        url "https://maven.egovframe.go.kr/maven/"
        metadataSources {
            artifact()
        }
    }
}

//repositories {
//    mavenCentral()
//    maven { url "https://maven.egovframe.go.kr/maven/" } // egovframe maven 원격 저장소
//}


ext {
    set('springCloudVersion', "2021.0.4")
    set('log4j2.version', "2.17.1") // log4j 보안 패치
}

dependencies {
    implementation 'org.egovframe.cloud:module-common:0.1'
    implementation('org.egovframe.rte:org.egovframe.rte.fdl.cmmn:4.0.0') {
        exclude group: 'org.egovframe.rte', module: 'org.egovframe.rte.fdl.logging'
    }
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-security'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-validation'

    implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation 'org.springframework.boot:spring-boot-starter-websocket'

    implementation 'com.googlecode.json-simple:json-simple:1.1.1'
    implementation 'com.google.code.gson:gson:2.9.1'
    implementation 'com.googlecode.log4jdbc:log4jdbc:1.2'
    // https://mvnrepository.com/artifact/com.google.guava/guava
    implementation 'com.google.guava:guava:20.0'
    implementation 'org.json:json:20210307'
    implementation 'org.modelmapper:modelmapper:2.4.4'

    implementation "com.querydsl:querydsl-jpa:5.0.0"
    implementation 'com.querydsl:querydsl-apt:5.0.0'
    implementation 'com.querydsl:querydsl-core:5.0.0'
    implementation 'com.querydsl:querydsl-sql:5.0.0'
    implementation 'com.querydsl:querydsl-sql-spring:5.0.0'
    implementation 'com.querydsl:querydsl-sql-codegen:5.0.0'

    implementation 'org.apache.tomcat:tomcat-jdbc:10.1.1'
    implementation 'javax.servlet:javax.servlet-api'
    implementation 'com.fasterxml.jackson.core:jackson-databind'

    implementation 'org.apache.poi:poi:5.2.2'
    implementation 'org.apache.poi:poi-ooxml:5.2.2'

    implementation 'software.amazon.awssdk:s3:2.16.1'


    //전자정부의존성
    implementation 'commons-codec:commons-codec:1.15'
//    implementation group: 'commons-logging', name: 'commons-logging', version: '1.2'
//    implementation group: 'ch.qos.logback', name: 'logback-core', version: '1.4.5'
//    testImplementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.4.5'
//    implementation group: 'org.slf4j', name: 'jcl-over-slf4j', version: '2.0.6'




    //jsp의존성
    implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
    implementation 'javax.servlet:jstl'
    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'org.springframework.security:spring-security-test'
    implementation 'net.jodah:expiringmap:0.5.9'
    // https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient
    implementation 'org.apache.httpcomponents:httpclient:4.5.14'


    compileOnly 'org.projectlombok:lombok'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'

//    runtimeOnly 'com.oracle.database.jdbc:ojdbc8'
    implementation 'mysql:mysql-connector-java:5.1.49'
    implementation 'com.oracle.database.jdbc:ojdbc8:21.7.0.0'

//    implementation 'org.mybatis:mybatis:3.5.11'
//    implementation 'org.mybatis:mybatis-spring:2.0.7'
    implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2'

    annotationProcessor 'org.projectlombok:lombok'

    implementation("com.jayway.jsonpath:json-path:2.5.0")

    implementation files("lib/ASRLIB-2.4.0.2.jar")
    implementation files("lib/pttsnet_class.jar")
}

tasks.named('test') {
    useJUnitPlatform()
}


dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
    }
}

// querydsl 추가 시작
def querydslDir = "$buildDir/generated/querydsl"
//def querydslDir = "src/main/qfile"
//def querydslDir = "src/main/java/egovframework/example/jpa/qfile"
querydsl {
    library = 'com.querydsl:querydsl-apt:5.0.0'
    jpa = true
    querydslSourcesDir = querydslDir
}
sourceSets {
    main.java.srcDir querydslDir
}
configurations {
    querydsl.extendsFrom compileClasspath
}
compileQuerydsl {
    options.annotationProcessorPath = configurations.querydsl
}
// querydsl 추가 끝
