diff --git a/.gitignore b/.gitignore
index ff7341dc..78a91b49 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,4 +14,4 @@
/data/savedGames
/lib/
*/target/
-
+*/build/
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 00000000..8a3b6501
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,51 @@
+allprojects {
+ group = 'apollo'
+ version = '0.0.1'
+ apply plugin: 'java'
+}
+
+subprojects {
+ sourceCompatibility = 1.8
+ targetCompatibility = 1.8
+
+ repositories {
+ mavenLocal()
+ maven { url "https://repo.maven.apache.org/maven2" }
+ }
+
+ dependencies {
+ compile group: 'org.apache.commons', name: 'commons-compress', version: '1.10'
+ compile group: 'org.jruby', name: 'jruby-complete', version: '9.0.5.0'
+ compile group: 'com.google.guava', name: 'guava', version: '19.0'
+ compile group: 'io.netty', name: 'netty-all', version: '4.0.34.Final'
+ compile group: 'com.lambdaworks', name: 'scrypt', version: '1.4.0'
+ compile group: 'com.mchange', name: 'c3p0', version: '0.9.5.2'
+ compile group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: '1.54'
+ testCompile group: 'junit', name: 'junit', version: '4.12'
+ testCompile group: 'org.powermock', name: 'powermock-module-junit4', version: '1.6.4'
+ testCompile group: 'org.powermock', name: 'powermock-api-mockito', version: '1.6.4'
+ }
+
+ sourceSets {
+ main {
+ java {
+ srcDirs = ['src/main']
+ }
+ }
+
+ test {
+ java {
+ srcDirs = ['src/test']
+ }
+ }
+ }
+}
+
+task(run, dependsOn: classes, type: JavaExec) {
+ def gameSubproject = project(':game')
+ def gameClasspath = gameSubproject.sourceSets.main.runtimeClasspath
+
+ main = 'org.apollo.Server'
+ classpath = gameClasspath
+ jvmArgs = ['-Xmx750M']
+}
\ No newline at end of file
diff --git a/cache/build.gradle b/cache/build.gradle
new file mode 100644
index 00000000..47511913
--- /dev/null
+++ b/cache/build.gradle
@@ -0,0 +1,5 @@
+description = 'Apollo Cache'
+
+dependencies {
+ compile project(':util')
+}
diff --git a/cache/pom.xml b/cache/pom.xml
deleted file mode 100644
index 2a9dff6c..00000000
--- a/cache/pom.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
- 4.0.0
-
-
- apollo
- org.apollo
- 0.0.1
-
-
- cache
- 0.0.1
-
- Apollo Cache
-
-
- UTF-8
-
-
-
- src/main
- src/test
-
-
-
-
- apollo
- util
- 0.0.1
- compile
-
-
-
-
\ No newline at end of file
diff --git a/game/build.gradle b/game/build.gradle
new file mode 100644
index 00000000..a96d17a9
--- /dev/null
+++ b/game/build.gradle
@@ -0,0 +1,7 @@
+description = 'Apollo Game'
+
+dependencies {
+ compile project(':cache')
+ compile project(':net')
+ compile project(':util')
+}
diff --git a/game/pom.xml b/game/pom.xml
deleted file mode 100644
index a678b720..00000000
--- a/game/pom.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
- 4.0.0
-
-
- apollo
- org.apollo
- 0.0.1
-
-
- game
- 0.0.1
-
- Apollo Game
-
-
- UTF-8
-
-
-
- src/main
- src/test
-
-
-
-
- apollo
- cache
- 0.0.1
- compile
-
-
-
- apollo
- net
- 0.0.1
- compile
-
-
-
- apollo
- util
- 0.0.1
- compile
-
-
-
-
\ No newline at end of file
diff --git a/net/build.gradle b/net/build.gradle
new file mode 100644
index 00000000..b004467d
--- /dev/null
+++ b/net/build.gradle
@@ -0,0 +1,6 @@
+description = 'Apollo Net'
+
+dependencies {
+ compile project(':cache')
+ compile project(':util')
+}
diff --git a/net/pom.xml b/net/pom.xml
deleted file mode 100644
index 659c4f2c..00000000
--- a/net/pom.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
- 4.0.0
-
-
- apollo
- org.apollo
- 0.0.1
-
-
- net
- 0.0.1
-
- Apollo Net
-
-
- UTF-8
-
-
-
- src/main
- src/test
-
-
-
-
- apollo
- cache
- 0.0.1
- compile
-
-
-
- apollo
- util
- 0.0.1
- compile
-
-
-
-
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index 3e768ffc..00000000
--- a/pom.xml
+++ /dev/null
@@ -1,113 +0,0 @@
-
- 4.0.0
- apollo
- org.apollo
- 0.0.1
- pom
-
- Apollo
-
-
- cache
- game
- net
- util
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.5
-
- 1.8
- 1.8
-
-
-
-
- org.codehaus.mojo
- exec-maven-plugin
- 1.4.0
-
- org.apollo.Server
-
- -server
- -Xmx750M
-
-
-
-
-
-
-
-
- org.apache.commons
- commons-compress
- 1.10
-
-
-
- org.jruby
- jruby-complete
- 9.0.5.0
-
-
-
- com.google.guava
- guava
- 19.0
-
-
-
- io.netty
- netty-all
- 4.0.34.Final
- compile
-
-
-
- com.lambdaworks
- scrypt
- 1.4.0
-
-
-
- com.mchange
- c3p0
- 0.9.5.2
-
-
-
- org.bouncycastle
- bcprov-jdk15on
- 1.54
-
-
-
- junit
- junit
- 4.12
- test
-
-
-
- org.powermock
- powermock-module-junit4
- 1.6.4
- test
-
-
-
- org.powermock
- powermock-api-mockito
- 1.6.4
- test
-
-
-
-
-
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 00000000..2bde76af
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,5 @@
+rootProject.name = 'org.apollo'
+include ':cache'
+include ':game'
+include ':net'
+include ':util'
diff --git a/util/build.gradle b/util/build.gradle
new file mode 100644
index 00000000..80b6ad3d
--- /dev/null
+++ b/util/build.gradle
@@ -0,0 +1 @@
+description = 'Apollo Utilities'
diff --git a/util/pom.xml b/util/pom.xml
deleted file mode 100644
index b66034f5..00000000
--- a/util/pom.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
- 4.0.0
-
-
- apollo
- org.apollo
- 0.0.1
-
-
- util
- 0.0.1
-
- Apollo Utilities
-
-
- UTF-8
-
-
-
- src/main
- src/test
-
-
-
\ No newline at end of file