환경별 deploy - gradle

gradle 2020. 4. 9. 12:37



張's blog :: gradle 명령어 및 Gradle build 문제 해결 (tistory.com)


- gradle 간단
1. 일반문자열은 싱글따움표
2. 변수는 더블따움표 사용

- 로컬변수
def testVal = "test"

- 전역변수
ext.testVal = "test" //한개씩 선언

ext { //여러개 선언
testVal_1 = "test_1"
testVal_2 = "test_2"
}


- command line 빌드
1. 명령 프롬프트에서 해당 프로젝트 파일로 이동한다.
2. gradle 명령 실행
https://programmer-ririhan.tistory.com/120


- eclipse에서 빌드

gradle task :
clean build
Arguments > Program Arguments :
-Pprofile=prd
단위테스트 건너띄고 빌드하기 : -xtest OR -x test
====================================================================================================
- Gradle 7.X

sourceSets {
    if (!project.hasProperty('profile') || !profile) {
        ext.profile = 'dev'
    }
    tmpProfile = "${profile}" // 개별 파일 교체시 사용하기 위한 변수

    println(project.name + "[${profile}/" + tmpProfile + "]")
    main {
        java.srcDirs = ['src/main/java']

        if(project.hasProperty( 'profile' )) {
            // resource에 src/main/java 패키지 제외하고 build하기
            //resources.srcDirs = ['src/main/resources', "src/main/resources-${profile}"]

            // resource에 src/main/java 패키지 내 xml 파일 포함하여 build하기
            resources.srcDirs = ['src/main/java', 'src/main/resources', "src/main/resources-${profile}"]

            //resources.excludes = ['**/sample', '**/sample*', '**/sample/*']
        }
    }
}

// resources, resources-${profile} copy 할 때 duplicatesStrategy 설정 하기
tasks.processResources {
    duplicatesStrategy = DuplicatesStrategy.INCLUDE
    OR
    duplicatesStrategy = DuplicatesStrategy.WARN
    println "Project Dir : $projectDir"
    println "Build Dir : $buildDir"
}

OR

tasks.war {
    enabled = true
    archiveFileName = "${deployFileName}"

    // 중복 파일 경고 후 덮어쓰기
    processResources.duplicatesStrategy = DuplicatesStrategy.WARN
    //processResources.duplicatesStrategy = DuplicatesStrategy.INCLUDE

    doLast {
        println("${thisProjectName}[war doLast] deploy profile [" + currentProfile + "]")
    }
}




====================================================================================================
- Gradle 6.X

sourceSets {
    if (!project.hasProperty('profile') || !profile) {
        ext.profile = 'dev'
    }
    main {
        java {
            srcDirs 'src/main/java'
        }

        resources {
            //조건문이 없으면
            //이클립스의 프로젝트 선택 후 마우스 우클릭 > Properties > Java Build Path 에서
            //resources-dev도 path에 잡히게 됨 (resource-prd는 안잡힘.. 이유는 모르겠음)
            //이럴경우 Java Build Path > Order and Export에서
            //~main/resources를 ~main/resources-dev보다 위에 위치하게 하면 됨
            if(project.hasProperty( 'profile' )) {
                // java 소스에 xml 파일이 있을 경우 xml 파일 포함시키기 위한 부분 'src/main/java'
                srcDirs 'src/main/java', 'src/main/resources', "src/main/resources-${profile}"
                //exclude '**/sample'
                //exclude '**/sample*'
                //exclude '**/sample/*'
            }
        }
    }
}



https://perfectacle.github.io/2017/09/23/Spring-boot-gradle-profile/

 

(Spring Boot) Gradle의 Profile(dev/production)을 구분지어보자.

메이븐은 기본적으로 빌드할 때 프로필을 지정할 수 있는 것 같은데 gradle은 직접 삽질을 하면서 깨달았다.다음의 글들을 보고 Spring boot 1.5.7과 Gradle 3.x(아마)? 에 맞게, 내 입맛에 맞게 각색해보

perfectacle.github.io



https://eblo.tistory.com/58

 

Spring boot - 빌드 profile 설정

Overview Dev - QA - Product에 따른 profile 설정입니다. Spring에서 사용하는 profile과 Maven/Gradle에서 사용하는 profile은 뭐가 다른가요? 개발자 중에 Maven, Gradle에서 사용하는 profile과 spring에서..

eblo.tistory.com



https://osozaki.tistory.com/m/14

 

Gradle 배포 환경 별 설정파일 분리

대부분 웹 애플리케이션을 개발할 시 DB를 개발용과 운영용으로 구분하여 개발하는데 WAS에 DB커넥션풀을 생성한 뒤 JNDI로 설정해두고 Spring의 context.xml에서 데이터 소스로 가져와서 쓰게 하는 방

osozaki.tistory.com


====================================================================================================

-환경별 dependency 다르게 하기

https://stackoverflow.com/questions/55479724/differentiate-dependency-based-on-profile-in-gradle-file


https://stackoverflow.com/questions/40659986/maven-profiles-equivalent-of-gradle



- gradle 변수property 활용
https://osc131.tistory.com/m/2
04

 

[SpringBoot]  Gradle 변수 Property 활용

작성일자 : 2022.05.29 환경 : SpringBoot, Gradle 시나리오 : Gradle 에서 할당한 변수를 서버 사이드에서 Property 로 활용 1. Gradle 설정 추가 build.gradle ... processResources { filesMatching('**/application.properties') { expan

osc131.tistory.com







Posted by 張's blog
,