diff --git a/wpilibcExamples/publish.gradle b/wpilibcExamples/publish.gradle
new file mode 100644
index 0000000..3bc1a09
--- /dev/null
+++ b/wpilibcExamples/publish.gradle
@@ -0,0 +1,87 @@
+apply plugin: 'maven-publish'
+
+def baseExamplesArtifactId = 'examples'
+def baseTemplatesArtifactId = 'templates'
+def baseCommandsArtifactId = 'commands'
+def artifactGroupId = 'edu.wpi.first.wpilibc'
+
+def examplesZipBaseName = '_GROUP_edu_wpi_first_wpilibc_ID_examples_CLS'
+def templatesZipBaseName = '_GROUP_edu_wpi_first_wpilibc_ID_templates_CLS'
+def commandsZipBaseName = '_GROUP_edu_wpi_first_wpilibc_ID_commands_CLS'
+
+def outputsFolder = file("$project.buildDir/outputs")
+
+task cppExamplesZip(type: Zip) {
+    destinationDirectory = outputsFolder
+    archiveBaseName = examplesZipBaseName
+
+    from(licenseFile) {
+        into '/'
+    }
+
+    from('src/main/cpp/examples') {
+        into 'examples'
+    }
+}
+
+task cppTemplatesZip(type: Zip) {
+    destinationDirectory = outputsFolder
+    archiveBaseName = templatesZipBaseName
+
+    from(licenseFile) {
+        into '/'
+    }
+
+    from('src/main/cpp/templates') {
+        into 'templates'
+    }
+}
+
+task cppCommandsZip(type: Zip) {
+    destinationDirectory = outputsFolder
+    archiveBaseName = commandsZipBaseName
+
+    from(licenseFile) {
+        into '/'
+    }
+
+    from('src/main/cpp/commands') {
+        into 'commands'
+    }
+}
+
+build.dependsOn cppTemplatesZip
+build.dependsOn cppExamplesZip
+build.dependsOn cppCommandsZip
+
+addTaskToCopyAllOutputs(cppTemplatesZip)
+addTaskToCopyAllOutputs(cppExamplesZip)
+addTaskToCopyAllOutputs(cppCommandsZip)
+
+publishing {
+    publications {
+        examples(MavenPublication) {
+            artifact cppExamplesZip
+
+            artifactId = baseExamplesArtifactId
+            groupId artifactGroupId
+            version wpilibVersioning.version.get()
+        }
+
+        templates(MavenPublication) {
+            artifact cppTemplatesZip
+
+            artifactId = baseTemplatesArtifactId
+            groupId artifactGroupId
+            version wpilibVersioning.version.get()
+        }
+
+        commands(MavenPublication) {
+            artifact cppCommandsZip
+
+            artifactId = baseCommandsArtifactId
+            groupId artifactGroupId
+            version wpilibVersioning.version.get()
+        }
+    }
+}
