Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 15 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,16 @@ Gradle utilities for easier writing Bukkit plugins.
#### Features:
- Automatically applies plugins: java, idea, eclipse
- Sets up compiler encoding to UTF-8
- Sets archivesBaseName to plugin name
- Supports APIs: Bukkit, CraftBukkit, Spigot, Paper
- Provides short extension-functions to add common repositories and dependencies
- Generates plugin.yml from Gradle project information
- Allows to run dev server from IDE
- Supports two cores for dev server: Spigot and Paper
- Automatically downloads and updates BuildTools or Paperclip
- Automatically copies your plugin to plugins dir on server running

#### TODO:
- Add extension function for PaperApi
- Add possibility to use Paper/CraftBukkit as dev server core
- Add automatically downloading of BuildTools
- Add smart dependency system

## Apply plugin
Expand Down Expand Up @@ -157,7 +158,7 @@ dependencies {

##### Repositories:
Name | Url
----------------|----------------------------------------------------------------
----------------|-------------------------------------------------------------------
spigot | https://hub.spigotmc.org/nexus/content/repositories/snapshots/
sk98q | http://maven.sk89q.com/repo/
destroystokyo | https://repo.destroystokyo.com/repository/maven-public/
Expand All @@ -167,16 +168,19 @@ dependencies {
placeholderapi | http://repo.extendedclip.com/content/repositories/placeholderapi/

##### Dependencies:
Name | Signature
-------------|-----------------------------------------------
spigot | org.spigotmc:spigot:$apiVersion
spigotApi | org.spigotmc:spigot-api:$apiVersion
bukkit | org.bukkit:bukkit:$apiVersion
craftbukkit | org.bukkit:craftbukkit:$apiVersion
paperApi | com.destroystokyo.paper:paper-api:$apiVersion
Some dependencies also applies repo that needed for them.

Name | Signature | Applies repo
-------------|-----------------------------------------------|---------------
spigot | org.spigotmc:spigot:$apiVersion | -
spigotApi | org.spigotmc:spigot-api:$apiVersion | spigot
bukkit | org.bukkit:bukkit:$apiVersion | spigot
craftbukkit | org.bukkit:craftbukkit:$apiVersion | -
paperApi | com.destroystokyo.paper:paper-api:$apiVersion | destroystokyo

**Note:** `$apiVersion` - is `${version}-R0.1-SNAPSHOT` (where `$version` is `bukkit.version`)

If you want more extension-functions - you can [write issue](https://github.com/EndlessCodeGroup/BukkitGradle/issues/new).

### Running Dev server
Before running server you should configure dev server location.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import org.gradle.api.Project
import org.gradle.api.plugins.JavaPluginConvention
import org.gradle.api.tasks.compile.JavaCompile
import ru.endlesscode.bukkitgradle.util.Dependencies
import ru.endlesscode.bukkitgradle.util.Repositories

class BukkitGradlePlugin implements Plugin<Project> {
final static String GROUP = 'Bukkit'
Expand All @@ -26,17 +25,17 @@ class BukkitGradlePlugin implements Plugin<Project> {
/**
* Configures project
*/
void configureProject() {
private void configureProject() {
addPlugins()
configureEncoding()
addRepositories()
addDependencies()
addExtensionFunctions()
}

/**
* Adds all needed plugins
*/
void addPlugins() {
private void addPlugins() {
project.with {
plugins.with {
apply('java')
Expand All @@ -55,7 +54,7 @@ class BukkitGradlePlugin implements Plugin<Project> {
/**
* Sets force encoding on compile to UTF-8
*/
void configureEncoding() {
private void configureEncoding() {
project.tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
Expand All @@ -64,19 +63,22 @@ class BukkitGradlePlugin implements Plugin<Project> {
/**
* Adds needed repositories
*/
void addRepositories() {
Repositories.configureProject(project)

private void addRepositories() {
project.repositories {
mavenLocal()
mavenCentral()
}
}

/**
* Adds needed dependencies
* Adds repositories and dependencies extension functions
*/
void addDependencies() {
private void addExtensionFunctions() {
project.repositories {
mavenLocal()
mavenCentral()
}

Dependencies.configureProject(project)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,74 @@ package ru.endlesscode.bukkitgradle.util
import org.gradle.api.Project
import org.gradle.api.artifacts.Dependency
import org.gradle.api.artifacts.dsl.DependencyHandler
import org.gradle.api.artifacts.dsl.RepositoryHandler

class Dependencies {

private static Project project
private static DependencyHandler handler
private static RepositoryHandler repoHandler
private static DependencyHandler depHandler

private Dependencies() {}

static configureProject(Project project) {
this.project = project
handler = project.dependencies
repoHandler = project.repositories
depHandler = project.dependencies
addExtensions()
}

private static addExtensions() {
handler.ext {
repoHandler.ext {
spigot = {
addRepo('spigot-repo', 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/')
}
sk89q = {
addRepo('sk89q-repo', 'http://maven.sk89q.com/repo/')
}
destroystokyo = {
addRepo('destroystokyo-repo', 'https://repo.destroystokyo.com/repository/maven-public/')
}
dmulloy2 = {
addRepo('dmulloy2-repo', 'http://repo.dmulloy2.net/nexus/repository/public/')
}
md5 = {
addRepo('md5-repo', 'http://repo.md-5.net/content/groups/public/')
}
vault = {
addRepo('vault-repo', 'http://nexus.hc.to/content/repositories/pub_releases/')
}
placeholderapi = {
addRepo('placeholderapi-repo', 'http://repo.extendedclip.com/content/repositories/placeholderapi/')
}
}

depHandler.ext {
spigot = { api('org.spigotmc', 'spigot') }
spigotApi = { api('org.spigotmc', 'spigot-api') }
bukkit = { api('org.bukkit', 'bukkit') }
spigotApi = { api('org.spigotmc', 'spigot-api', 'spigot') }
bukkit = { api('org.bukkit', 'bukkit', 'spigot') }
craftbukkit = { api('org.bukkit', 'craftbukkit') }
paperApi = { api('com.destroystokyo.paper', 'paper-api') }
paperApi = { api('com.destroystokyo.paper', 'paper-api', 'destroystokyo') }
}
}

private static addRepo(repoName, repoUrl) {
repoHandler.maven {
name = repoName
url = repoUrl
}
}

private static Dependency api(String groupId, String artifactId) {
def version = project.bukkit.version
return handler.create("$groupId:$artifactId:$version")
private static Dependency api(String groupId, String artifactId, String... requiredRepos) {
String version = project.bukkit.version
return dep(groupId, artifactId, version, requiredRepos)
}

private static Dependency dep(String groupId, String artifactId, String version, String... requiredRepos) {
for (repo in requiredRepos) {
repoHandler.ext."$repo"()
}

return depHandler.create("$groupId:$artifactId:$version")
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ class BukkitGradlePluginTest extends TestBase {
@Test
void testPluginAddsRequiredRepos() throws Exception {
project.repositories {
spigot()
sk89q()
}

project.repositories.getByName("spigot-repo")
project.repositories.getByName("sk89q-repo")
}

@Test
Expand All @@ -30,6 +30,7 @@ class BukkitGradlePluginTest extends TestBase {
assertEquals('org.bukkit', dependency.group)
assertEquals('bukkit', dependency.name)
assertEquals('+', dependency.version)
project.repositories.getByName("spigot-repo")
}

@Test
Expand Down