Skip to content

Commit 4edb54b

Browse files
authored
Merge pull request #17 from EndlessCodeGroup/feature/betterDepExtensions
Better dependencies extensions
2 parents 7d5b672 + 7cb8f3c commit 4edb54b

File tree

5 files changed

+81
-82
lines changed

5 files changed

+81
-82
lines changed

README.md

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,16 @@ Gradle utilities for easier writing Bukkit plugins.
1515
#### Features:
1616
- Automatically applies plugins: java, idea, eclipse
1717
- Sets up compiler encoding to UTF-8
18+
- Sets archivesBaseName to plugin name
19+
- Supports APIs: Bukkit, CraftBukkit, Spigot, Paper
1820
- Provides short extension-functions to add common repositories and dependencies
1921
- Generates plugin.yml from Gradle project information
2022
- Allows to run dev server from IDE
23+
- Supports two cores for dev server: Spigot and Paper
24+
- Automatically downloads and updates BuildTools or Paperclip
2125
- Automatically copies your plugin to plugins dir on server running
2226

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

2930
## Apply plugin
@@ -157,7 +158,7 @@ dependencies {
157158

158159
##### Repositories:
159160
Name | Url
160-
----------------|----------------------------------------------------------------
161+
----------------|-------------------------------------------------------------------
161162
spigot | https://hub.spigotmc.org/nexus/content/repositories/snapshots/
162163
sk98q | http://maven.sk89q.com/repo/
163164
destroystokyo | https://repo.destroystokyo.com/repository/maven-public/
@@ -167,16 +168,19 @@ dependencies {
167168
placeholderapi | http://repo.extendedclip.com/content/repositories/placeholderapi/
168169

169170
##### Dependencies:
170-
Name | Signature
171-
-------------|-----------------------------------------------
172-
spigot | org.spigotmc:spigot:$apiVersion
173-
spigotApi | org.spigotmc:spigot-api:$apiVersion
174-
bukkit | org.bukkit:bukkit:$apiVersion
175-
craftbukkit | org.bukkit:craftbukkit:$apiVersion
176-
paperApi | com.destroystokyo.paper:paper-api:$apiVersion
171+
Some dependencies also applies repo that needed for them.
172+
173+
Name | Signature | Applies repo
174+
-------------|-----------------------------------------------|---------------
175+
spigot | org.spigotmc:spigot:$apiVersion | -
176+
spigotApi | org.spigotmc:spigot-api:$apiVersion | spigot
177+
bukkit | org.bukkit:bukkit:$apiVersion | spigot
178+
craftbukkit | org.bukkit:craftbukkit:$apiVersion | -
179+
paperApi | com.destroystokyo.paper:paper-api:$apiVersion | destroystokyo
177180

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

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

181185
### Running Dev server
182186
Before running server you should configure dev server location.

src/main/groovy/ru/endlesscode/bukkitgradle/BukkitGradlePlugin.groovy

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import org.gradle.api.Project
66
import org.gradle.api.plugins.JavaPluginConvention
77
import org.gradle.api.tasks.compile.JavaCompile
88
import ru.endlesscode.bukkitgradle.util.Dependencies
9-
import ru.endlesscode.bukkitgradle.util.Repositories
109

1110
class BukkitGradlePlugin implements Plugin<Project> {
1211
final static String GROUP = 'Bukkit'
@@ -26,17 +25,17 @@ class BukkitGradlePlugin implements Plugin<Project> {
2625
/**
2726
* Configures project
2827
*/
29-
void configureProject() {
28+
private void configureProject() {
3029
addPlugins()
3130
configureEncoding()
3231
addRepositories()
33-
addDependencies()
32+
addExtensionFunctions()
3433
}
3534

3635
/**
3736
* Adds all needed plugins
3837
*/
39-
void addPlugins() {
38+
private void addPlugins() {
4039
project.with {
4140
plugins.with {
4241
apply('java')
@@ -55,7 +54,7 @@ class BukkitGradlePlugin implements Plugin<Project> {
5554
/**
5655
* Sets force encoding on compile to UTF-8
5756
*/
58-
void configureEncoding() {
57+
private void configureEncoding() {
5958
project.tasks.withType(JavaCompile) {
6059
options.encoding = 'UTF-8'
6160
}
@@ -64,19 +63,22 @@ class BukkitGradlePlugin implements Plugin<Project> {
6463
/**
6564
* Adds needed repositories
6665
*/
67-
void addRepositories() {
68-
Repositories.configureProject(project)
69-
66+
private void addRepositories() {
7067
project.repositories {
7168
mavenLocal()
7269
mavenCentral()
7370
}
7471
}
7572

7673
/**
77-
* Adds needed dependencies
74+
* Adds repositories and dependencies extension functions
7875
*/
79-
void addDependencies() {
76+
private void addExtensionFunctions() {
77+
project.repositories {
78+
mavenLocal()
79+
mavenCentral()
80+
}
81+
8082
Dependencies.configureProject(project)
8183
}
8284
}

src/main/groovy/ru/endlesscode/bukkitgradle/util/Dependencies.groovy

Lines changed: 51 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,74 @@ package ru.endlesscode.bukkitgradle.util
33
import org.gradle.api.Project
44
import org.gradle.api.artifacts.Dependency
55
import org.gradle.api.artifacts.dsl.DependencyHandler
6+
import org.gradle.api.artifacts.dsl.RepositoryHandler
67

78
class Dependencies {
89

910
private static Project project
10-
private static DependencyHandler handler
11+
private static RepositoryHandler repoHandler
12+
private static DependencyHandler depHandler
1113

1214
private Dependencies() {}
1315

1416
static configureProject(Project project) {
1517
this.project = project
16-
handler = project.dependencies
18+
repoHandler = project.repositories
19+
depHandler = project.dependencies
1720
addExtensions()
1821
}
1922

2023
private static addExtensions() {
21-
handler.ext {
24+
repoHandler.ext {
25+
spigot = {
26+
addRepo('spigot-repo', 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/')
27+
}
28+
sk89q = {
29+
addRepo('sk89q-repo', 'http://maven.sk89q.com/repo/')
30+
}
31+
destroystokyo = {
32+
addRepo('destroystokyo-repo', 'https://repo.destroystokyo.com/repository/maven-public/')
33+
}
34+
dmulloy2 = {
35+
addRepo('dmulloy2-repo', 'http://repo.dmulloy2.net/nexus/repository/public/')
36+
}
37+
md5 = {
38+
addRepo('md5-repo', 'http://repo.md-5.net/content/groups/public/')
39+
}
40+
vault = {
41+
addRepo('vault-repo', 'http://nexus.hc.to/content/repositories/pub_releases/')
42+
}
43+
placeholderapi = {
44+
addRepo('placeholderapi-repo', 'http://repo.extendedclip.com/content/repositories/placeholderapi/')
45+
}
46+
}
47+
48+
depHandler.ext {
2249
spigot = { api('org.spigotmc', 'spigot') }
23-
spigotApi = { api('org.spigotmc', 'spigot-api') }
24-
bukkit = { api('org.bukkit', 'bukkit') }
50+
spigotApi = { api('org.spigotmc', 'spigot-api', 'spigot') }
51+
bukkit = { api('org.bukkit', 'bukkit', 'spigot') }
2552
craftbukkit = { api('org.bukkit', 'craftbukkit') }
26-
paperApi = { api('com.destroystokyo.paper', 'paper-api') }
53+
paperApi = { api('com.destroystokyo.paper', 'paper-api', 'destroystokyo') }
54+
}
55+
}
56+
57+
private static addRepo(repoName, repoUrl) {
58+
repoHandler.maven {
59+
name = repoName
60+
url = repoUrl
2761
}
2862
}
2963

30-
private static Dependency api(String groupId, String artifactId) {
31-
def version = project.bukkit.version
32-
return handler.create("$groupId:$artifactId:$version")
64+
private static Dependency api(String groupId, String artifactId, String... requiredRepos) {
65+
String version = project.bukkit.version
66+
return dep(groupId, artifactId, version, requiredRepos)
67+
}
68+
69+
private static Dependency dep(String groupId, String artifactId, String version, String... requiredRepos) {
70+
for (repo in requiredRepos) {
71+
repoHandler.ext."$repo"()
72+
}
73+
74+
return depHandler.create("$groupId:$artifactId:$version")
3375
}
3476
}

src/main/groovy/ru/endlesscode/bukkitgradle/util/Repositories.groovy

Lines changed: 0 additions & 50 deletions
This file was deleted.

src/test/groovy/ru/endlesscode/bukkitgradle/BukkitGradlePluginTest.groovy

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ class BukkitGradlePluginTest extends TestBase {
1717
@Test
1818
void testPluginAddsRequiredRepos() throws Exception {
1919
project.repositories {
20-
spigot()
20+
sk89q()
2121
}
2222

23-
project.repositories.getByName("spigot-repo")
23+
project.repositories.getByName("sk89q-repo")
2424
}
2525

2626
@Test
@@ -30,6 +30,7 @@ class BukkitGradlePluginTest extends TestBase {
3030
assertEquals('org.bukkit', dependency.group)
3131
assertEquals('bukkit', dependency.name)
3232
assertEquals('+', dependency.version)
33+
project.repositories.getByName("spigot-repo")
3334
}
3435

3536
@Test

0 commit comments

Comments
 (0)