diff --git a/README.md b/README.md
index c04ae4b..a56935d 100644
--- a/README.md
+++ b/README.md
@@ -28,7 +28,7 @@ slideView.addOption(deleteOption);
 #### 方式二
 
 ``` xml
-<me.codego.example.SlideView
+<me.codego.slideview.SlideView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
@@ -61,7 +61,7 @@ slideView.addOption(deleteOption);
 
     </RelativeLayout>
 
-</me.codego.example.SlideView>
+</me.codego.slideview.SlideView>
 ```
 
 ### TODO
diff --git a/app/build.gradle b/app/build.gradle
index d1e89d4..29f252c 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -24,4 +24,6 @@ dependencies {
     testImplementation 'junit:junit:4.12'
     implementation 'com.android.support:appcompat-v7:28.0.0'
     implementation 'com.android.support:recyclerview-v7:28.0.0'
+
+    implementation project(':slideview')
 }
diff --git a/app/src/main/java/me/codego/example/MainActivity.java b/app/src/main/java/me/codego/example/MainActivity.java
index e302a37..3c30d67 100644
--- a/app/src/main/java/me/codego/example/MainActivity.java
+++ b/app/src/main/java/me/codego/example/MainActivity.java
@@ -14,6 +14,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import me.codego.slideview.SlideView;
+
 public class MainActivity extends AppCompatActivity {
 
     private RecyclerView mRecyclerView;
diff --git a/app/src/main/res/layout/item_main_custom.xml b/app/src/main/res/layout/item_main_custom.xml
index 0f5c865..07937fe 100644
--- a/app/src/main/res/layout/item_main_custom.xml
+++ b/app/src/main/res/layout/item_main_custom.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<me.codego.example.SlideView
+<me.codego.slideview.SlideView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
@@ -54,4 +54,4 @@
 
     </RelativeLayout>
 
-</me.codego.example.SlideView>
+</me.codego.slideview.SlideView>
diff --git a/build.gradle b/build.gradle
index ae9fbaf..5012109 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,7 +6,9 @@ buildscript {
         google()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.2.1'
+        classpath 'com.android.tools.build:gradle:3.3.2'
+        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
+        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
 
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 01fb97f..46ee5ab 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Thu Jan 10 15:03:39 CST 2019
+#Wed Mar 27 09:44:54 CST 2019
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
diff --git a/settings.gradle b/settings.gradle
index e7b4def..39489a6 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1 +1 @@
-include ':app'
+include ':app', ':slideview'
diff --git a/slideview/.gitignore b/slideview/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/slideview/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/slideview/build.gradle b/slideview/build.gradle
new file mode 100644
index 0000000..8f3cf6b
--- /dev/null
+++ b/slideview/build.gradle
@@ -0,0 +1,36 @@
+apply plugin: 'com.android.library'
+
+android {
+    compileSdkVersion 28
+
+
+
+    defaultConfig {
+        minSdkVersion 14
+        targetSdkVersion 28
+        versionCode 1
+        versionName "1.0"
+
+        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+
+    }
+
+    buildTypes {
+        release {
+            minifyEnabled false
+            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+        }
+    }
+
+}
+
+dependencies {
+    implementation fileTree(dir: 'libs', include: ['*.jar'])
+
+    implementation 'com.android.support:appcompat-v7:28.0.0'
+    testImplementation 'junit:junit:4.12'
+    androidTestImplementation 'com.android.support.test:runner:1.0.2'
+    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+}
+
+apply from: "https://raw.githubusercontent.com/mengxn/android-library-publish-to-jcenter/master/bintrayUpload.gradle"
\ No newline at end of file
diff --git a/slideview/proguard-rules.pro b/slideview/proguard-rules.pro
new file mode 100644
index 0000000..f1b4245
--- /dev/null
+++ b/slideview/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/slideview/project.properties b/slideview/project.properties
new file mode 100644
index 0000000..e83161c
--- /dev/null
+++ b/slideview/project.properties
@@ -0,0 +1,10 @@
+#project
+project.name=SlideView
+project.groupId=me.codego
+project.artifactId=slideview
+project.packaging=aar
+project.siteUrl=https://github.com/mengxn/SlideView
+project.gitUrl=https://github.com/mengxn/SlideView.git
+
+#javadoc
+javadoc.name=SlideView
\ No newline at end of file
diff --git a/slideview/src/androidTest/java/me/codego/slideview/ExampleInstrumentedTest.java b/slideview/src/androidTest/java/me/codego/slideview/ExampleInstrumentedTest.java
new file mode 100644
index 0000000..022eea8
--- /dev/null
+++ b/slideview/src/androidTest/java/me/codego/slideview/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package me.codego.slideview;
+
+import android.content.Context;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+    @Test
+    public void useAppContext() {
+        // Context of the app under test.
+        Context appContext = InstrumentationRegistry.getTargetContext();
+
+        assertEquals("me.codego.slideview.test", appContext.getPackageName());
+    }
+}
diff --git a/slideview/src/main/AndroidManifest.xml b/slideview/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..a4047aa
--- /dev/null
+++ b/slideview/src/main/AndroidManifest.xml
@@ -0,0 +1,2 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="me.codego.slideview" />
diff --git a/app/src/main/java/me/codego/example/SlideView.java b/slideview/src/main/java/me/codego/slideview/SlideView.java
similarity index 99%
rename from app/src/main/java/me/codego/example/SlideView.java
rename to slideview/src/main/java/me/codego/slideview/SlideView.java
index 342fb5e..bbf6b41 100644
--- a/app/src/main/java/me/codego/example/SlideView.java
+++ b/slideview/src/main/java/me/codego/slideview/SlideView.java
@@ -1,4 +1,4 @@
-package me.codego.example;
+package me.codego.slideview;
 
 import android.content.Context;
 import android.graphics.Color;
diff --git a/app/src/main/res/layout/layout_slide_item.xml b/slideview/src/main/res/layout/layout_slide_item.xml
similarity index 100%
rename from app/src/main/res/layout/layout_slide_item.xml
rename to slideview/src/main/res/layout/layout_slide_item.xml
diff --git a/slideview/src/main/res/values/strings.xml b/slideview/src/main/res/values/strings.xml
new file mode 100644
index 0000000..d51c915
--- /dev/null
+++ b/slideview/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+<resources>
+    <string name="app_name">slideview</string>
+</resources>
diff --git a/slideview/src/test/java/me/codego/slideview/ExampleUnitTest.java b/slideview/src/test/java/me/codego/slideview/ExampleUnitTest.java
new file mode 100644
index 0000000..dce3c64
--- /dev/null
+++ b/slideview/src/test/java/me/codego/slideview/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package me.codego.slideview;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
+ */
+public class ExampleUnitTest {
+    @Test
+    public void addition_isCorrect() {
+        assertEquals(4, 2 + 2);
+    }
+}
\ No newline at end of file