728x90

 

 


 

 

Jitpack 을 이용하여 간단하게 오픈소스 프로젝트를 배포하고 해당 디펜던시를 추가하여 정상적인 작동이 이루어지는지 확인해보도록 하겠습니다. =)

 

 

 

먼저 필자의 경우 다음과 같이 Github을 이용하여 Public 레포지토리를 생성하였습니다.

 

 

프로젝트 작업은 Intellij IDE 를 사용하였고 스프링 프로젝트가 아닌 Java 프로젝트로 생성을 해주었습니다. =)

 

apply plugin: 'java'
apply plugin: 'maven-publish'

group 'io.github._0AndWild'
version '1.0-SNAPSHOT'

sourceCompatibility = 11
targetCompatibility = 11

repositories {
    mavenCentral()
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
    //lombok
    compileOnly('org.projectlombok:lombok:1.18.24')
    //test code
    testImplementation('org.assertj:assertj-core:3.21.0')

}

java {
    withSourcesJar()
    withJavadocJar()
}

publishing {
    publications {
        maven(MavenPublication) {
            from components.java
        }
    }
}


test {
    useJUnitPlatform()
}

 

프로젝트의 build.gradle 은 위와 같이 설정해주었고 jitpack 의 경우 java 8 버전만 지원한다는 글들이 있지만 아래와 같이 프로젝트의 root 경로에 jitpack.yml 파일을 만들어준 후 다음과 같이 사용하고자 하는 jdk 버전을 명시해주면 사용이 가능합니다. =) 

 

 

필자는 연습용으로 만들어본 프로젝트 이기에 간단하게 특수문자 유효성을 검사해주는 validator를 만들어주었고 배포를 해보았습니다.

 

package io.github._0AndWild;

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class Validator {

    /**
     * <pre>
     *  사용가능한 특수문자 이외의 특수문자가 있는지 검사하는 메서드
     * </pre>
     * @param s 검사할 String
     * @param specialCharacters 포함가능한 특수문자, 특수문자를 []에 감싸서 입력
     * @return boolean - 통과 시 true, 포함할 수 없는 특수문자 존재 시 false
     */

    public static boolean validateSpecialCharacters(String s, String specialCharacters){
        boolean result = true;
        Pattern pattern = Pattern.compile("\\W");
        Pattern isOkPattern = Pattern.compile(specialCharacters);
        String removeEmptySpace = s.replace(" ", "");

        for (int i = 0; i < removeEmptySpace.length(); i++) {
            String character = String.valueOf(removeEmptySpace.charAt(i));
            Matcher matcher = pattern.matcher(character);
            if (matcher.find()) {
                Matcher checkPattern = isOkPattern.matcher(character);
                if (!checkPattern.find()) {
                    result = false;
                    break;
                }
            }
        }
        return result;
    }

}

 

위와 같이 간단하게 코드를 짜본 후 아래처럼 테스트코드로 검증을 해보았습니다. =)

 

package io.github._0AndWild;

import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;

class ValidatorTest {

    @Nested
    class validateSpecialCharacters {
        @Test
        @DisplayName("특수문자 형식 검사 성공 케이스")
        void successCase() {

            String s = "Hello Wor#ld. This is! Test+&";
            String isOkPattern = "[!+&%:,^@#.]";

            boolean check = Validator.validateSpecialCharacters(s,isOkPattern);

            Assertions.assertThat(check).isEqualTo(true);
        }

        @Test
        @DisplayName("특수문자 형식 검사 실패 케이스")
        void failCase() {

            String s = "Hello Wor#ld. This is! Test+&";
            String isOkPattern = "[#.!+]";

            boolean check = Validator.validateSpecialCharacters(s,isOkPattern);

            Assertions.assertThat(check).isEqualTo(false);
        }
    }
}

 

위와 같이 검증을 완료한 후 코드를 원격 레포지토리에 푸쉬해주었고 다음과 같이 release를 해주었습니다.

 

레포지토리를 들어가면 Releases라는 부분이 있고 해당 버튼을 클릭하면 배포를 할 수 있습니다.

 

 

이런식으로 태그를 이용해 버전을 명시한 후 간단한 설명을 추가하여 배포를 진행해주시면 됩니다.

 

필자의 경우 다음과 같이 버그를 수정한 후 다시 배포를 진행해주었습니다. ㅎㅎ

 

이제 jitpack 사이트로 들어가 아래와 같이 자신의 github 레포지토리 url 을 검색해주세요.

 

JitPack | Publish JVM and Android libraries

JitPack makes it easy to release your Java or Android library. Publish straight from GitHub or Bitbucket.

jitpack.io

 

검색을하고 시간이 조금 지나면 Log 부분의 색상이 빨간색 또는 초록색으로 바뀌게 됩니다. 만약 빨간색이 뜬다면 Report 를 확인하여 주세요. 초록색이 뜬다면 정상적으로 배포가 완료된거고 이제 다른 프로젝트에서 의존성을 추가하여 사용할 수 있습니다. =)

 

 

스크롤을 조금만 아래로 내려주시면 의존성을 어떻게 추가하면 사용할 수 있는지 친절하게 설명도 나와있군요. 

 

이제 필자는 다른 프로젝트에서 위와 같이 의존성을 추가한 후 정상적으로 작동을 하는지 테스트를 진행해보도록 하겠습니다. =)

 

 

다음과 같이 의존성을 추가해주었고 외부 라이브러리에 잘 다운이 되었는지 확인을 해주겠습니다.

 

 

정상적으로 잘 받아와졌군요. =)

 

 

이제 간단하게 컨트롤러를 하나 만들어주고 포스트맨으로 작동을 확인해보도록 하겠습니다.

허용가능하게 할 특수문자를 대괄호로 감싼 후 테스트를 진행해보도록 하겠습니다.

 

 

 

이렇게 간단하게 테스트까지 정상적으로 작동하는 것을 확인하였습니다. =)

 

 

 

이상으로 Jitpack 을 활용한 라이브러리 생성과 배포 테스트까지 진행해보았습니다.

모두 새해에는 좋은 일만 가득하고 행복한 하루 보내시길 바랍니다. =)

728x90
반응형

'DailyStudy > Spring' 카테고리의 다른 글

Dispatcher selvelet이란?  (0) 2022.09.27
복사했습니다!