Update runtime library version to match plugin version.
Update examples to use latest version of compiler, plugin and runtime.
Update Gradle to run on build agents with Java 9.
diff --git a/.gitignore b/.gitignore
index ffc8a0d..c32c4c4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,6 @@
 
 # Maven files
 target
+
+# Modules for JS projects build
+node_modules
diff --git a/build.gradle b/build.gradle
index 271017c..16e0e20 100644
--- a/build.gradle
+++ b/build.gradle
@@ -18,11 +18,11 @@
     if (project.hasProperty("bootstrap")) {
         ext.compilerVersion = '1.2-SNAPSHOT'
         ext.librariesVersion = '1.2-SNAPSHOT'
-        ext.serializationPluginVersion = '0.4.1-SNAPSHOT'
+        ext.serializationPluginVersion = '0.4.2-SNAPSHOT'
     } else {
-        ext.compilerVersion = '1.2.21'
-        ext.librariesVersion = '1.2.21'
-        ext.serializationPluginVersion = '0.4.1'
+        ext.compilerVersion = '1.2.30'
+        ext.librariesVersion = '1.2.30'
+        ext.serializationPluginVersion = '0.4.2'
     }
     ext.eapChannel = 'https://dl.bintray.com/kotlin/kotlin-eap'
     ext.serializationRepo = 'https://kotlin.bintray.com/kotlinx'
@@ -59,7 +59,7 @@
 
 allprojects {
     group 'org.jetbrains.kotlinx'
-    version '0.4.1'
+    version '0.4.2'
 
     repositories {
         jcenter()
@@ -135,4 +135,4 @@
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/example-js/build.gradle b/example-js/build.gradle
index 80f5198..62d2f0b 100644
--- a/example-js/build.gradle
+++ b/example-js/build.gradle
@@ -17,8 +17,8 @@
 version '1.0-SNAPSHOT'
 
 buildscript {
-    ext.kotlin_version = '1.2.10'
-    ext.serialization_version = '0.4'
+    ext.kotlin_version = '1.2.30'
+    ext.serialization_version = '0.4.2'
     ext.web_path = 'web'
 
     repositories {
@@ -73,4 +73,4 @@
         from sourceSets.main.resources.srcDirs
         into "${projectDir}/$web_path"
     }
-}
\ No newline at end of file
+}
diff --git a/example-js/gradle/wrapper/gradle-wrapper.properties b/example-js/gradle/wrapper/gradle-wrapper.properties
index 106ca19..210ebe4 100644
--- a/example-js/gradle/wrapper/gradle-wrapper.properties
+++ b/example-js/gradle/wrapper/gradle-wrapper.properties
@@ -19,4 +19,4 @@
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-rc-2-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.5.zip
diff --git a/example-jvm/build.gradle b/example-jvm/build.gradle
index 55fc60d..64e3ed6 100644
--- a/example-jvm/build.gradle
+++ b/example-jvm/build.gradle
@@ -15,8 +15,8 @@
  */
 
 buildscript {
-    ext.kotlin_version = '1.2.21'
-    ext.serialization_version = '0.4.1'
+    ext.kotlin_version = '1.2.30'
+    ext.serialization_version = '0.4.2'
 
     repositories {
         jcenter()
@@ -52,6 +52,5 @@
 task runApp(type: JavaExec) {
     classpath = sourceSets.main.compileClasspath + sourceSets.main.runtimeClasspath
 
-    workingDir = "$projectDir/build/classes/main"
     main = 'App'
-}
\ No newline at end of file
+}
diff --git a/example-jvm/gradle/wrapper/gradle-wrapper.properties b/example-jvm/gradle/wrapper/gradle-wrapper.properties
index 934f26b..a27e9b8 100644
--- a/example-jvm/gradle/wrapper/gradle-wrapper.properties
+++ b/example-jvm/gradle/wrapper/gradle-wrapper.properties
@@ -19,4 +19,4 @@
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.5-bin.zip
diff --git a/example-jvm/pom.xml b/example-jvm/pom.xml
index 3c1bafe..b98c090 100644
--- a/example-jvm/pom.xml
+++ b/example-jvm/pom.xml
@@ -45,8 +45,9 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <kotlin.version>1.2.10</kotlin.version>
-        <serialization.version>0.4</serialization.version>
+        <kotlin.version>1.2.30</kotlin.version>
+        <serialization.version>0.4.2</serialization.version>
+        <kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
     </properties>
 
     <dependencies>
@@ -104,6 +105,10 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <version>3.5.1</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                </configuration>
                 <executions>
                     <execution>
                         <id>default-compile</id>
diff --git a/example-jvm/settings.gradle b/example-jvm/settings.gradle
new file mode 100644
index 0000000..1f0eea0
--- /dev/null
+++ b/example-jvm/settings.gradle
@@ -0,0 +1 @@
+rootProject.name='example-jvm'
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 2878ccf..1eb0ae4 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -19,4 +19,4 @@
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.5-all.zip
diff --git a/runtime/js/.gitignore b/runtime/js/.gitignore
deleted file mode 100644
index b512c09..0000000
--- a/runtime/js/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
\ No newline at end of file
diff --git a/runtime/jvm/build.gradle b/runtime/jvm/build.gradle
index 0f660eb..dde135c 100644
--- a/runtime/jvm/build.gradle
+++ b/runtime/jvm/build.gradle
@@ -34,7 +34,7 @@
     }
 }
 
-test {
+compileTestKotlin {
     dependsOn 'generateTestProto'
 }
 
@@ -76,4 +76,4 @@
 
 compileKotlin {
     kotlinOptions.jvmTarget = "1.6"
-}
\ No newline at end of file
+}