내가 만든 라이브러리/모듈을 로컬에서 사용하기
728x90
반응형

 

앞에서 엑셀 모듈을 사용하여 암호화하는 방법을 공유했다. 이 과정에서 해당 모듈을 빌드하여 로컬에서 테스트하고 싶다는 생각이 든다. 그 방법은 아래와 같이 공유해본다.

 

모듈을 빌드하기

  • Java + Gradle
  • Nexus Repository를 사용 - 본 내용에서는 Nexus에 반영 전 로컬에서 테스트하는 방법을 공유할 예정
  • 기타 gradle 정보는 아래를 참고할 것
// build.gradle
plugins {
    id 'java-library'
    id 'maven-publish'
    id 'nebula.release' version '15.2.0'
}

group = 'devvkkid'

java.sourceCompatibility = JavaVersion.VERSION_11
java.targetCompatibility = JavaVersion.VERSION_11

java {
    withSourcesJar()
}

dependencies {
    implementation 'org.jsoup:jsoup:1.15.3'
    implementation group: "org.apache.poi", name: "poi", version: "4.1.2"
    implementation group: "org.apache.poi", name: "poi-ooxml", version: "4.1.2"
}


repositories {
    maven {
        // 생략
    }
}

publishing {
    publications {
        maven(MavenPublication) {
            groupId = group
            artifactId = 'excel-module'
            from components.java
        }
    }
}

publishing {
    repositories {
        maven {
            // Nexus 관련 정보
        }
    }
}

 

먼저 publishing 정보를 확인하자. 그 후 아래와 같은 형태로 빌드를 한다. 이건 Local maven repository에 publish하고 이를 다른 프로젝트에서 사용하도록 빌드하는 것이다. 그리고 해당 빌드 위치를 보면 빌드된 jar 파일이 보일 것이다. 이 jar 파일을 원하는 애플리케이션에 추가해보자.

$ ./gradlew clean publishToMavenLocal
// 빌드 위치 : ~/.m2/repositor/(groupId)/(artifactId)/(version)
// 예시용 빌드 위치 : ~/.m2/repository/devvkkid/excel-module/1.3.0-dev.0.uncommitted+61b1eb8
// 예시용 jar 파일명 : excel-module-1.3.0-dev.0.uncommitted+61b1eb8.jar

 

 

라이브러리(모듈) 추가하기

사용하는 방법은 간단하다. 아래처럼 로컬에서 추가할 것을 암시하는 mavenLocal을 입력하면 알아서 .m2 디렉토리에서 implementation의 정보를 가지고 온다. implementation는 평소에 사용하는 것처럼 Group ID, Artifact ID, Version 정보를 입력하면 된다. 그리고 빌드를 하면 정상적으로 라이브러리가 추가된 것을 볼 수 있다.

allprojects {
    repositories {
        // 일부 생략
        mavenLocal()
    }
}

subprojects {
    dependencies {
        // 일부 생략
        implementation("devvkkid", "excel-module", "1.3.0-dev.0.uncommitted+61b1eb8")
    }
}

 

.

728x90
반응형