김솔샤르
김솔샤르의 인사이트
김솔샤르
전체 방문자
오늘
어제
  • 분류 전체보기 (51)
    • IT (47)
      • 개발로그 (9)
      • 개발지식 (24)
      • 개발일기 (8)
      • 기타 (3)
      • Note (2)
    • 칼럼 (3)
    • 생활정보 (2)

인기 글

최근 댓글

최근 글

태그

  • 축구
  • 러시아월드컵
  • jpa
  • 월드컵
  • epl
  • 포그바
  • JavaScript
  • 맨유
  • 자바스크립트
  • 루니

티스토리

블로그 메뉴

  • 홈
  • 태그
  • 방명록
hELLO · Designed By 정상우.
김솔샤르

김솔샤르의 인사이트

jitPack으로 라이브러리 배포하기
IT/개발지식

jitPack으로 라이브러리 배포하기

2022. 10. 24. 22:25

내가 개발한 무언가를 라이브러리로 만들어서 배포하고 싶을때 jitPack을 활용하면 간단하게 할 수 있다. 그런데 불행히도 공식 문서가 약간 부족한 느낌이고 블로그도 제대로 정리된게 없는것 같아 몇 자 적어본다.

 

1. 배포할 라이브러리 개발

우선 Github Repository를 만들어서 코드를 올린다. 여기까지는 되어있어야 한다. 예제로 간단히 오늘 날짜를 조회할 수 있는 DataService를 만들어봤다고 치자. (언어는 코틀린이다.)

@Component
class DateService {
    fun getBaseDate(): LocalDate {
        return LocalDate.now()
    }

    fun getBaseDateTime(): LocalDateTime {
        return LocalDateTime.now()
    }
}

 

2. build.gradle 설정

maven publish 플러그인 추가

plugins {
	id("org.springframework.boot") version "2.7.4"
	id("io.spring.dependency-management") version "1.0.14.RELEASE"
	id("maven-publish") //추가
	kotlin("jvm") version "1.6.21"
	kotlin("plugin.spring") version "1.6.21"
}

 

Archive(jar file) classifier 제거

빌드 결과물에 -plain 같이 의도치 않은 postfix가 자꾸 붙어서 강제로 제거해줬다. 

tasks.jar {
	enabled = true
	// Remove `plain` postfix from jar file name
	archiveClassifier.set("")
}

 

Publish 설정

아래 Repository에 방문해보면 전체 소스가 있다.

publishing {
	repositories {
		maven {
			url = uri("https://github.com/morot2/date-util")
		}
	}
	publications {
		register("mavenJava", MavenPublication::class) {
			from(components["java"])
			artifact(sourcesJar.get())
		}
	}
}

 

3. Release 생성

Github Repository가면 우측에서 Release를 확인할 수 있다. 아직 생성한 Release가 없으면 새로 만들면 된다. 이건가? 하고 몇 번 눌러보면 간단히 새로운 Release Tag를 생성할 수 있다.

 

4. jitPack으로 패키지 등록

여기까지 했으면 https://jitpack.io/ 에 접속해서 패키지를 등록하자. 메인에 크게 input box가 하나 있는데 여기에 repository 주소를 넣으면 된다. github.com/morot/date-util에서 github.com~ 이하를 넣으면 된다. 그 뒤 Look up을 누르면 알아서 내 Repository를 뒤져 최신 Release를 패키지로 등록해준다.

만약 빌드 중 오류가 발생하면 Log 아이콘이 빨간색으로 뜬다. Report를 눌러서 어느 부분에 문제가 있었는지 확인할 수 있다. 성공적으로 등록됐다면 Get it 버튼이 뜰 것이다. 누르면 라이브러리 의존 설정 코드가 복사된다.

 

5. 적용(사용할 프로젝트)

패키지가 잘 등록되었는지 직접 다른 프로젝트에 적용해보자. 우선 jitPack Maven Repository를 추가해준다.

repositories {
	mavenCentral()
	maven{
		url = uri("https://jitpack.io")
	}
}

 

그 다음 라이브러리 의존성을 추가해준다. 위(jitPack 메인)에서 Get it 버튼을 눌러서 복사하면 된다.

implementation("com.github.morot2:date-util:1.0.3")

 

이제 끝이다. 아래와 같이 DataService 라이브러리를 잘 불러와서 코드에서 사용할 수 있는지 확인해보면 된다.

import org.springframework.stereotype.Component
import com.solshar.util.date.DateService
import java.time.LocalDate

@Component
class Producer(val dateService: DateService){
    
    fun getYesterday(): LocalDate {
        val today = dateService.getBaseDate()
        return today.minusDays(1)
    }
반응형
저작자표시 비영리 변경금지

'IT > 개발지식' 카테고리의 다른 글

정규 표현식 빠르게 만들기  (0) 2022.10.17
쿼리에서 비즈니스 로직을 걷어내자  (0) 2022.04.17
Spring @Cacheable을 내부 메서드에 쓰면 안되는 이유  (0) 2022.03.12
Spark 개발 환경 구축하기 - Scala, IntelliJ, SBT  (0) 2021.10.04
Spring Batch - Paging 처리시 주의점  (0) 2021.09.26
김솔샤르
김솔샤르
기술 그리고 삶

티스토리툴바