Gradle 설치하기

SpongeGradle 사용하기

SpongeGradle은 Sponge 플러그인을 설정하기 위해 필요한 Gradle 설정을 최소화 해주는 Gradle 플러그인입니다. 부가적으로, 이 플러그인은 당신의 빌드 스크립트에 정의된 그룹, 프로젝트 이름, 버전, 프로젝트 설명을 빌드된 플러그인에 자동으로 적용해주는 등 플러그인 메타데이터의 연계 기능을 제공합니다. 따라서 당신은 플러그인의 버전을 빌드 스크립트에서만 관리하면 됩니다.

Most problems are caused by attempting to use an outdated Gradle version. We recommend using the latest Gradle version together with SpongeGradle. The Gradle section of the build systems page explains how to setup Gradle on your computer.

아래 예제는 거의 모든 플러그인에서 사용될 수 있는 빌드 스크립트입니다. group 값으로 당신이 전에 선택한 group ID를 대입해야 동작합니다.

plugins {
    id 'org.spongepowered.plugin' version '0.8.1'
}

group = 'com.example' // TODO
version = '1.0-SNAPSHOT'
description = 'An example plugin'

dependencies {
    compile 'org.spongepowered:spongeapi:5.1.0'
}

이것으로 당신은 수동으로 해야 할 설정들을 자동으로 맡길 수 있습니다:

  • 기본적인 Gradle의 Java 설정

  • 프로젝트를 Java 8로 컴파일하도록 설정

  • Sponge의 Maven (그리고 Maven Central) 저장소 추가

  • 플러그인 설정에서 프로젝트 이름을 소문자 **플러그인 ID**로 지정

  • 플러그인 메타데이터의 프로젝트 이름, 설명, 버전을 자동으로 적용

플러그인 ID를 수동으로 지정하기

기본적으로, Gradle 플러그인은 당신의 **플러그인 ID**를 (소문자로 변환시킨) 프로젝트 이름으로 설정할 것입니다. 만약 프로젝트 이름과 다른 임의의 **플러그인 ID**를 사용하고 플러그인 메타데이터와 계속 연계되도록 하고 싶다면 빌드 스크립트에서 수동으로 설정할 수 있습니다:

sponge {
    plugin {
        id = 'mypluginid'
    }
}

기본 설정 덮어쓰기

기본적으로 Gradle 플러그인은 프로젝트 설정의 기본 값을 토대로 플러그인 이름, **플러그인 버전**과 **플러그인 설명**을 플러그인 메타데이터에 동기화시킬 것입니다. 이것 또한 당신이 원하는 값으로 덮어쓸 수 있습니다:

sponge {
    plugin {
        meta {
            name = 'My Plugin'
            version = '1.0.0'
            description = 'This is a plugin'
        }
    }
}

또한 기본 값을 전부 지워버릴 수도 있습니다:

sponge {
    plugin {
        meta {
            description = null
        }
    }
}

SpongeGradle 없이 빌드하기

경고

SpongeGradle은 Sponge 플러그인 개발에 부가적인 연계 기능을 제공하는 Gradle 플러그인입니다. 사용하는 것을 권장드립니다.

Generally, everything necessary to compile a Sponge plugin using Gradle can be done by simply adding the SpongeAPI dependency to your project:

repositories {
    mavenCentral()
    maven {
        name = 'sponge'
        url = 'https://repo.spongepowered.org/maven'
    }
}

dependencies {
    compile 'org.spongepowered:spongeapi:5.1.0'
}