본문 바로가기
마인크래프트/플러그인 제작 강좌(자바)

[인텔리제이로 마크 플러그인 개발하기](보충) Gradle로 jar 빌드하기 2

by Zepelown 2023. 6. 30.

*이 글은 Spigot 1.20.1 버전을 기준으로 하여 제작되었습니다.

 

 

https://zepelown.tistory.com/46

 

[인텔리제이로 마크 플러그인 개발하기](보충) Gradle로 jar 빌드하기

*이 글은 Spigot 1.19.3 버전을 기준으로 하여 제작되었습니다. 지난 화 https://zepelown.tistory.com/45 [인텔리제이로 마크 플러그인 개발하기]7. 나만의 인벤토리 GUI 만들기 2편 (인벤토리와 관련된 이 *이

zepelown.tistory.com

위 내용을 최신 버전(인텔리제이, gradle, minecraft 포함)에서 사용할 수 있게 

 

재작성한 글입니다.

 


위와 같이 프로젝트를 만들 때 설정하였습니다.

먼저 저는 임의로 KotlinTest2라는 프로젝트를 만들고

 

메인 클래스(KotlinTest2)를 다음과 같이 설정해 두었습니다.

현재 onEnable() 메소드 안에 로그만 남길 뿐 아무것도 건드리지 않았습니다.

 

이제 위 사진 기준 좌측에 있는 build.gradle 파일로 들어가 줍니다.

 

plugins {
    id 'java'
}

group = 'org.zepelown'
version = '1.0-SNAPSHOT'

repositories {
    mavenCentral()
    maven {
        name = "spigotmc-repo"
        url = "https://hub.spigotmc.org/nexus/content/repositories/snapshots/"
    }
    maven {
        name = "sonatype"
        url = "https://oss.sonatype.org/content/groups/public/"
    }
}

dependencies {
    compileOnly "org.spigotmc:spigot-api:1.20.1-R0.1-SNAPSHOT"
}

def targetJavaVersion = 17
java {
    def javaVersion = JavaVersion.toVersion(targetJavaVersion)
    sourceCompatibility = javaVersion
    targetCompatibility = javaVersion
    if (JavaVersion.current() < javaVersion) {
        toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion)
    }
}

tasks.withType(JavaCompile).configureEach {
    if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) {
        options.release = targetJavaVersion
    }
}

processResources {
    def props = [version: version]
    inputs.properties props
    filteringCharset 'UTF-8'
    filesMatching('plugin.yml') {
        expand props
    }
}

 

위와 같은 코드를 볼 수 있습니다.

 

이제 여기 맨 밑에 코드를 추가해 줍시다.

jar {
    archiveFileName = 'testplugin.jar'
    destinationDirectory = file("C:\\Users\\user\\Desktop\\game\\minecraft\\1.20.1 plugin develop server\\plugins")
    manifest {
        attributes 'Main-Class': 'org.zepelown.kotlintest2.KotlinTest2'
    }
}

archiveFileName 은 빌드 후 결과물인 jar 파일의 이름을 뜻하고

 

destinationDirectory는 결과물의 위치(경로)를 뜻합니다.

 

arttibutes 'Main-Class'는 말 그대로 메인클래스의 경로를 지정해줘야 하며 패키지형식으로 입력해 주시면 됩니다.

 

여기서 메인 클래스란?

 

onEnable과 onDisable이 있는 클래스를 적어주면 됩니다.

 

다시 돌아와서 

 

attributes 'Main-Class': 'org.zepelown.kotlintest2.KotlinTest2' 는

 

org.zepelown.kotlintest2의 경로에 있는 KotlinTest2 클래스를 의미하는 겁니다.

 


이제 빌드를 해보겠습니다.

인텔리제이 오른쪽에 보면 Gradle이 있음을 알 수가 있습니다.

 

이걸 눌러줍니다.

 

Tasks -> Build -> jar 찾아서 더블클릭 해줍니다.

 

그러면 빌드가 진행되는데

 

위에서 결정한 파일명과 경로에 맞게 빌드가 된 것을 확인할 수 있습니다.

 

이제 실행해 보겠습니다.

정상적으로 작동함을 알 수가 있습니다.

 


추가로 한번 빌드를 진행했을 시에

 

오른쪽 상단의 초록색 실행 버튼으로 빌드가 가능해지니 

 

계속 Gradle 창에서 하지 마세요.

 

댓글