본문 바로가기
JAVA

[JAVA] gradle 이용 runnable jar 생성 시에 dependency library 포함 진행

by Hwoarang757 2023. 7. 5.

build.gradle에 dependencies 에 명시한 lib들을 포함 하기 위하여 아래 스크립트를 삽입 하였습니다!

dependencies {
    // Use JUnit Jupiter for testing.
    testImplementation 'org.junit.jupiter:junit-jupiter:5.8.1'

    // This dependency is exported to consumers, that is to say found on their compile classpath.
    api 'org.apache.commons:commons-math3:3.6.1'

    // This dependency is used internally, and not exposed to consumers on their own compile classpath.
    implementation 'com.google.guava:guava:30.1.1-jre'
    
    //필요 library 포함
    implementation 'org.apache.logging.log4j:log4j-core:2.20.0'
	implementation 'org.apache.httpcomponents:httpclient:4.5.14'
	implementation 'org.json:json:20230618'

}

 

 

runnable jar로 build 하기 위하여 추가 하였습니다. [ 의존성 library 포함 진행 ]

jar {
    manifest {
        attributes 'Main-Class': 'ChannelStatus.StateTrans' // 실행할 클래스 명시
    }
	from {
        configurations.runtimeClasspath.collect {
            it.isDirectory() ? it : zipTree(it)
        }
    }
    // 중복 파일 제거
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}

 

추가로 build 시에 Target java 버젼 을 세팅 하였습니다. 

sourceCompatibility = '1.8'
targetCompatibility = '1.8'

 

 

Gradle Task로 build를 진행하여 jar 파일을 생성하고 

java -jar lib.jar 를 실행 하였습니다.