개발환경, 도구/Gradle

Gradle

gu9gu 2024. 2. 18. 22:20

1. jar 파일을 로컬에 배포

1) jar : jar파일 생성

2) publishToMavenLocal : 로컬 저장소에 배포

 (저장소 : C:\Users\{유저이름}\.m2\repository\com\{프로젝트 경로}....)

 

 

publishToMavenLocal  해도 local에 배포된 1.0-SNAPSHOT 버전 jar파일을 사용하는 프로젝트가 새로운 jar파일을 다시 읽어들인다.

그러면 불러온 파일 내용 확인하고 다시 bootrun 해서 동작 확인 한다.(m2에 있는 jar파일의 class파일을 확인)

External Libraries에도 읽어드린 jar파일이 잇어야 한다.

 


2. 새로 배포한 로컬의 jar 파일을 불러와서 사용

1) 의존성 추가하는 프로젝트의 버전 확인

  a) .gradle 파일 확인

dependencies {
  implementation(platform("com.{프로젝트}.{프로젝트}dependencies:${aProjectVersion}"))
}

 

  b) gradle.properties 파일에 버전들 정의해놓음

# SEE: http://gitlab..... {주소}
#기존 버전 주석처리 프로젝트Version=v240102-1
프로젝트Version=1.0-SNAPSHOT

 

 

 

2) Reload All Gradle Project

 

 


프로젝트 스냅샷 새롭게 못 읽는 현상일 때 조치 방법

1. 되는지 확인 필요함.

못 읽을 때 m2 폴더, gradle cache 파일 폴더 지우기

/**
 * Gradle 에서 스냅샷 버전jar파일을 다시 읽지 못할 때 라이브러리를 폴더를 삭제해본다.
 */
tasks.register("deleteLibrary") {
    group = "프로젝트skill"
    doLast {
        String userHomeDir = "${project.gradle.gradleUserHomeDir}/.."
        file("${userHomeDir}/.m2/repository/com/프로젝트/library").deleteDir()
        file("${userHomeDir}/.gradle/caches/modules-2/files-2.1/com.프로젝트.library").deleteDir()
        file("${userHomeDir}/.gradle/caches/modules-2/metadata-2.96/descriptors/com.프로젝트.library").deleteDir()
        file("${userHomeDir}/.gradle/caches/modules-2/metadata-2.97/descriptors/com.프로젝트.library").deleteDir()
    }
}

 

 

[참고]

사용 방법 : https://velog.io/@haerong22/Gradle-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EB%A7%8C%EB%93%A4%EA%B3%A0-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0Maven-Local-Repository

grdle docs : Maven 게시 플러그인 (gradle.org)

 

 

 


[build.gradle에서 api vs implements]

implements 로 의존하면 의존한 프로젝트가 의존한 프로젝트는 가져오지 않는다.

api로 의존하면 의존한 프로젝트가 의존한 프로젝트까지 가져온다.

dependencies {
	implementation("org.springframework.boot:spring-boot-starter-data-jpa")
    
	api(project(':module:models:api-model'))
}