diff --git a/build.gradle b/build.gradle
index 6fe645f..215b441 100644
--- a/build.gradle
+++ b/build.gradle
@@ -50,7 +50,7 @@
             // Only when the codegen is built along with the project, will we be able to recompile
             // the proto files.
             project.apply plugin: 'com.google.protobuf'
-            project.protobufCodeGenPlugins = ["java_plugin:$javaPluginPath"]
+            project.protobufCodeGenPlugins = ["grpc:$javaPluginPath"]
             project.protocDep = "com.google.protobuf:protoc:${protobufVersion}"
             project.generatedFileDir = "${projectDir}/src/generated"
             project.afterEvaluate {
@@ -68,6 +68,11 @@
                 java {
                   srcDir 'src/generated/main'
                 }
+                proto {
+                  plugins {
+                    grpc { }
+                  }
+                }
               }
             }
           }
@@ -85,7 +90,7 @@
                 okhttp: 'com.squareup.okhttp:okhttp:2.2.0',
                 protobuf: "com.google.protobuf:protobuf-java:${protobufVersion}",
                 protobuf_nano: "com.google.protobuf.nano:protobuf-javanano:${protobufVersion}",
-                protobuf_plugin: 'com.google.protobuf:protobuf-gradle-plugin:0.3.1',
+                protobuf_plugin: 'com.google.protobuf:protobuf-gradle-plugin:0.4.0',
 
                 netty: 'io.netty:netty-codec-http2:4.1.0.Beta5',
 
diff --git a/compiler/build.gradle b/compiler/build.gradle
index 4efa261..4433cdd 100644
--- a/compiler/build.gradle
+++ b/compiler/build.gradle
@@ -73,9 +73,45 @@
   }
 }
 
+configurations {
+  testNanoCompile
+}
+
 dependencies {
   testCompile project(':grpc-protobuf'),
               project(':grpc-stub')
+  testNanoCompile project(':grpc-protobuf-nano'),
+                  project(':grpc-stub')
+}
+
+sourceSets {
+  test {
+    proto {
+      plugins {
+        grpc { }
+      }
+    }
+  }
+  testNano {
+    proto {
+      setSrcDirs(['src/test/proto'])
+      builtins {
+        remove java
+        javanano {
+          option 'ignore_services=true'
+        }
+      }
+      plugins {
+        grpc {
+          option 'nano=true'
+        }
+      }
+    }
+  }
+}
+
+checkstyleTestNano {
+  source = fileTree(dir: "src/testNano", include: "**/*.java")
 }
 
 binaries.all {
@@ -152,35 +188,28 @@
 }
 
 project.protocDep = "com.google.protobuf:protoc:${protobufVersion}"
-protobufCodeGenPlugins = ["java_plugin:$javaPluginPath"]
+protobufCodeGenPlugins = ["grpc:$javaPluginPath"]
 
 project.afterEvaluate {
-  generateTestProto.dependsOn 'java_pluginExecutable'
+  [generateTestProto, generateTestNanoProto]*.dependsOn 'java_pluginExecutable'
 }
 
-// Ignore test for the moment on Windows. It will be easier to run once the
-// gradle protobuf plugin can support nano.
-if (osdetector.os != 'windows') {
-  test.dependsOn('testGolden','testNanoGolden')
-}
+test.dependsOn('testGolden', 'testNanoGolden')
 
-task testGolden(type: Exec, dependsOn: 'generateTestProto') {
+def configureTestTask(Task task, String suffix) {
+  task.dependsOn "generateTest${suffix}Proto"
   if (osdetector.os != 'windows') {
-    executable "diff"
+    task.executable "diff"
   } else {
-    executable "fc"
+    task.executable "fc"
   }
   // File isn't found on Windows if last slash is forward-slash
   def slash = System.getProperty("file.separator")
-  args "$buildDir/generated-sources/test/io/grpc/testing/integration" + slash + "TestServiceGrpc.java",
-       "$projectDir/src/test/golden/TestService.java.txt"
+  task.args "$buildDir/generated-sources/test${suffix}/io/grpc/testing/integration" + slash + "TestServiceGrpc.java",
+       "$projectDir/src/test/golden/TestService${suffix}.java.txt"
 }
 
-task testNanoGolden(type: Exec, dependsOn: 'java_pluginExecutable') {
-  doFirst {
-      temporaryDir.createNewFile();
-  }
-
-  environment 'TEST_TMP_DIR', temporaryDir
-  commandLine './src/test/run_nano_test.sh'
-}
+task testGolden(type: Exec)
+task testNanoGolden(type: Exec)
+configureTestTask(testGolden, '')
+configureTestTask(testNanoGolden, 'Nano')
diff --git a/compiler/src/test/run_nano_test.sh b/compiler/src/test/run_nano_test.sh
deleted file mode 100755
index 181c8e9..0000000
--- a/compiler/src/test/run_nano_test.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-
-if [ -z "$TEST_TMP_DIR" ]; then
-  echo '$TEST_TMP_DIR not set'
-  exit 1;
-fi
-
-cd "$(dirname "$0")"
-
-INPUT_FILE="proto/test.proto"
-OUTPUT_FILE="$TEST_TMP_DIR/TestServiceGrpc.src.jar"
-GRPC_FILE="$TEST_TMP_DIR/io/grpc/testing/integration/TestServiceGrpc.java"
-GOLDEN_FILE="golden/TestServiceNano.java.txt"
-
-protoc --plugin=protoc-gen-java_rpc=../../build/binaries/java_pluginExecutable/protoc-gen-grpc-java \
-  --java_rpc_out=nano=true:"$OUTPUT_FILE" "$INPUT_FILE" && \
-  unzip -o -d "$TEST_TMP_DIR" "$OUTPUT_FILE" && \
-  diff "$GRPC_FILE" "$GOLDEN_FILE" && \
-  echo "PASS"
