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

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

by Zepelown 2023. 1. 10.

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

 

지난 화

https://zepelown.tistory.com/45

 

[인텔리제이로 마크 플러그인 개발하기]7. 나만의 인벤토리 GUI 만들기 2편 (인벤토리와 관련된 이

*이 글은 Spigot 1.19.2 버전을 기준으로 하여 제작되었습니다. 지난 화 https://zepelown.tistory.com/44 [인텔리제이로 마크 플러그인 개발하기]6. 나만의 인벤토리 GUI 만들기 1편 (기본적인 인벤토리 작 *이

zepelown.tistory.com

연결되는 화

https://zepelown.tistory.com/32

 

[인텔리제이로 마크 플러그인 개발(제작)하기] 1. 기본적인 세팅

이 글에서는 많이 알려져 있는 인텔리제이 설치, Jdk 설치는 생략하고 간단한 인텔리제이 플러그인을 사용하여 기본적인 세팅을 완성하는 것만 다룰 겁니다. 정상적으로 인텔리제이가 설치가 된

zepelown.tistory.com

만약 이 글이 안되면 참고하세요

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

 

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

*이 글은 Spigot 1.20.1 버전을 기준으로 하여 제작되었습니다. https://zepelown.tistory.com/46 [인텔리제이로 마크 플러그인 개발하기](보충) Gradle로 jar 빌드하기 *이 글은 Spigot 1.19.3 버전을 기준으로 하여

zepelown.tistory.com


1화에서 Maven으로 진행하였습니다.

 

하지만 Gradle을 선택 시에는 위 강의처럼 진행하면 jar파일이 경로에 원하는 대로 생기지 않습니다.

 

이를 해결하는 방법입니다.

 


 

먼저 임의로 Gradle으로 프로젝트를 생성하였습니다.

그러면 위와 같이 자동으로 프로젝트를 생성해줍니다.

 

여기서 확인할 파일은 build.gradle이고 열어줍시다.

 

plugins {
    id 'java'
}

group = 'io.github.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.19.3-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 {
    destinationDir new File (
        "C:\\Users\\test\\Desktop\\minecraft\\1.19.3 plugin develop server\\plugins"
        )
    manifest {
        attributes 'Main-Class' : 'io.github.zepelown.mysandbox.Main'
    }
}

위와 같이 작성해주시면 됩니다.

 

destinationDir new File 뒤에는 서버 폴더가 있는 곳

 

manifest는 플러그인을 구동하는 메인 클래스를 지정해주면 됩니다.

 

여기서 메인 클래스가 뭐냐면

 

package io.github.zepelown.mysandbox;

import io.github.zepelown.mysandbox.command.OpenInv;
import io.github.zepelown.mysandbox.event.InvClickEvent;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;

public final class Main extends JavaPlugin {
    // 플러그인 인스턴스
    Plugin serverinstance;
    // 커맨드 등록
    private OpenInv commandOpenInvInstacne;
    // 이벤트 등록
    private InvClickEvent eventInvClickInstance;


    public Main(){
        serverinstance = this;
        commandOpenInvInstacne = new OpenInv();
        eventInvClickInstance = new InvClickEvent();
    }

    @Override
    public void onEnable() {
        // 커맨드 등록
        getServer().getPluginCommand("openinv").setExecutor(commandOpenInvInstacne);
        // 이벤트 등록
        getServer().getPluginManager().registerEvents(eventInvClickInstance, serverinstance);
    }

    @Override
    public void onDisable() {

    }
}

onEnable()과 onDisable() 함수를 사용하는 클래스라고 생각하시면 됩니다.

 

이제 설정은 끝났습니다.

 

빌드를 하기 위해선

 

인텔리제이 오른쪽에 보면

Gradle 창을 열 수가 있고

 

여기서 Tasks -> build -> jar 를

 

눌러주시면 됩니다.

 

그러면 빌드가 진행되며 이후엔

 

초록색 화살표를 눌러주시면 됩니다.

 

플러그인이 정상적으로 빌드가 됐음을 알 수가 있습니다.

 

댓글