From 48e219ed855cdade164b666640727e094aac2cd3 Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Thu, 2 Apr 2020 09:08:52 +0100 Subject: [PATCH 1/2] DOC-6448-Set-java-compatibility-version-in-build-gradle https://issues.couchbase.com/browse/DOC-6448 --- .../com/couchbase/code_snippets/Examples.java | 43 ++++++++++---- .../ROOT/pages/_partials/gsBuildGradle.adoc | 47 +++++++++++++++ modules/ROOT/pages/java-android.adoc | 57 +++++++++++-------- modules/ROOT/pages/java-platform.adoc | 52 +++++++++-------- 4 files changed, 141 insertions(+), 58 deletions(-) create mode 100644 modules/ROOT/pages/_partials/gsBuildGradle.adoc diff --git a/modules/ROOT/examples/java/src/com/couchbase/code_snippets/Examples.java b/modules/ROOT/examples/java/src/com/couchbase/code_snippets/Examples.java index f95073de7..7ffdc901e 100644 --- a/modules/ROOT/examples/java/src/com/couchbase/code_snippets/Examples.java +++ b/modules/ROOT/examples/java/src/com/couchbase/code_snippets/Examples.java @@ -137,11 +137,23 @@ public static void main (String [] args) throws CouchbaseLiteException, Interrup // end::getting-started[] // tag::getting-startedGradle[] + plugins { id 'java' id 'application' } +// Comment out the below line if no source code is Kotlin +kotlinOptions { jvmTarget = '1.8' } + +// Set minimum JVM level to ensure availability of, for example, lambda expressions +compileOptions +{ + targetCompatibility 1.8 + sourceCompatibility 1.8 +}  + +// Declare repositories repositories { // Add your Maven/Ivy/file repository here. jcenter() @@ -170,20 +182,31 @@ implementation fileTree(include: ['*.jar'], dir: libs> id 'java' id 'application' } -allprojects { - repositories { - google() - jcenter() - maven { - url "https://mobile.maven.couchbase.com/maven2/dev/" - } + +// Comment out the below line if no source code is Kotlin +kotlinOptions { jvmTarget = '1.8' } + +// Set minimum JVM level to ensure availability of, for example, lambda expressions +compileOptions +{ + targetCompatibility 1.8 + sourceCompatibility 1.8 +}  + +repositories { + maven { + url "https://mobile.maven.couchbase.com/maven2/dev/" } + google() + jcenter() } + + dependencies { -// Use for Enterprise version +// Comment out below line if using Enterprise version + implementation "com.couchbase.lite:couchbase-lite-java:2.7.0" +// Comment out below line if using Community version implementation "com.couchbase.lite:couchbase-lite-java-ee:2.7.0" -// Use for community versions -// implementation "com.couchbase.lite:couchbase-lite-java:2.7.0" } application { diff --git a/modules/ROOT/pages/_partials/gsBuildGradle.adoc b/modules/ROOT/pages/_partials/gsBuildGradle.adoc new file mode 100644 index 000000000..d5f2cc23b --- /dev/null +++ b/modules/ROOT/pages/_partials/gsBuildGradle.adoc @@ -0,0 +1,47 @@ +// tag::allContent[] + +application { + // Define the main class for the application. + mainClassName = 'gettingstarted.GettingStarted' +} + +plugins { + id 'java' + id 'application' +} + +// tag::compileOptions[] +// Comment out if none of your source code is Kotlin +kotlinOptions { jvmTarget = '1.8' } + +// Set minimum JVM level to ensure availability of, for example, lambda expressions +compileOptions +{ + targetCompatibility 1.8 + sourceCompatibility 1.8 +}  +// end::compileOptions[] + +// tag::dependencies[] +dependencies { + implementation 'com.couchbase.lite:couchbase-lite-android-ee:{version}' +} +// end::dependencies[] + +// tag::repositories[] +repositories { + maven { + url "https://mobile.maven.couchbase.com/maven2/dev/" + } + google() + jcenter() +} +// end::repositories[] + +// end::allContent[] + +// tag::dependenciesCE[] +dependencies { + implementation 'com.couchbase.lite:couchbase-lite-android:{version}' +} +// end::dependenciesCE[] diff --git a/modules/ROOT/pages/java-android.adoc b/modules/ROOT/pages/java-android.adoc index 53a938970..913c6b5e0 100644 --- a/modules/ROOT/pages/java-android.adoc +++ b/modules/ROOT/pages/java-android.adoc @@ -16,47 +16,54 @@ include::_attributesLocal.adoc[] == Getting Started - -=== Android Studio - Create or open an existing Android Studio project and install Couchbase Lite using the following method. -==== Couchbase Lite Community Edition +Make the following additions to the module-level `build.gradle` file (typically in the *app* folder). -* Add the following in the `dependencies` section of the application's *build.gradle* (the one in the *app* folder). + +[{tabs}] +==== +Community:: ++ +-- +. Include the following in the `android {}` section: + [source,groovy,subs=attributes+] ---- -dependencies { - implementation 'com.couchbase.lite:couchbase-lite-android:{version}' -} +include::partial$gsBuildGradle.adoc[tag=compileOptions] +---- +. Include the following in the `dependencies{}` section: ++ +[source,groovy,subs=attributes+] +---- +include::partial$gsBuildGradle.adoc[tag=dependenciesCE] ---- -==== Couchbase Lite Enterprise Edition - -* In the top-level *build.gradle* file, add the following Couchbase Maven repository in the `allprojects` section. +-- +Enterprise:: + -[source,groovy] +-- +. Include the following in the `android {}` section: ++ +[source,groovy,subs=attributes+] ---- -allprojects { - repositories { - google() - jcenter() - maven { - url "https://mobile.maven.couchbase.com/maven2/dev/" - } - } -} +include::partial$gsBuildGradle.adoc[tag=compileOptions] ---- -* Next, add the following in the `dependencies` section of the application's *build.gradle* (the one in the *app* folder). +. Include the following in the `dependencies{}` section: + [source,groovy,subs=attributes+] ---- -dependencies { - implementation 'com.couchbase.lite:couchbase-lite-android-ee:{version}' -} +include::partial$gsBuildGradle.adoc[tag=dependencies] +---- +. Include the following in the `repositories {}` section: ++ ---- +include::partial$gsBuildGradle.adoc[tag=repositories] +---- +-- +==== + === Starter code diff --git a/modules/ROOT/pages/java-platform.adoc b/modules/ROOT/pages/java-platform.adoc index 2d4d81a6c..d6a14107f 100644 --- a/modules/ROOT/pages/java-platform.adoc +++ b/modules/ROOT/pages/java-platform.adoc @@ -61,10 +61,8 @@ It assumes a familiarity with these products, however you are free to use your o The contents of your `build.gradle` file will depend on the type of project you are building, whether you are using Community or Enterprise edition and whether you prefer to use Maven-distributed binaries or a zip download. - TIP: If you wish to use a downloaded zip instead of Maven then see - <> - NOTE: If you are deploying to Linux, you will need the {cbl} `support` library, which is available _only_ on the zip download distributable -- see <> anchor:bmkUsingMavenRepos[Using Maven repositories] @@ -81,34 +79,42 @@ Console App Development:: . Create a project folder . Initialize it for a Gradle Java application -. Create your `build.gradle` file, including the following repositories and dependencies: +. Include the following in the `build.gradle` file: -* For Community edition +Community edition:: + -[source,groovy,subs=attributes+] +Compile options ++ +[source,groovy] ---- -dependencies { - implementation 'com.couchbase.lite:couchbase-lite-java:2.7.0' -} +include::partial$gsBuildGradle.adoc[tag=compileOptions] ---- - -* For Enterprise Edition +Dependencies + [source,groovy] +---- +include::partial$gsBuildGradle.adoc[tag=dependenciesCE] +---- +Enterprise Edition:: ++ +Compile options ++ +[source,groovy] ---- -allprojects { - repositories { - google() - jcenter() - maven { - url "https://mobile.maven.couchbase.com/maven2/dev/" - } - } -} -dependencies { - implementation 'com.couchbase.lite:couchbase-lite-java-ee:2.7.0' -} +include::partial$gsBuildGradle.adoc[tag=compileOptions] +---- +Dependencies ++ +[source,groovy] +---- +include::partial$gsBuildGradle.adoc[tag=dependencies] +---- +Repositories ++ +[source,groovy] +---- +include::partial$gsBuildGradle.adoc[tag=repositories] ---- . Open the project folder in {gpIDE} and import the {gpBuildTool} settings. @@ -129,7 +135,7 @@ That's it. You're all set to start building your own {cblJP} applications -- see [source,groovy,subs=attributes+] ---- -include::{snippet}[tags=gsGradleMavenExample,indent=0] +include::partial$gsBuildGradle.adoc[tag=allContent] ---- -- From a3ee1638224990440edf4183f3a434e20235d163 Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Tue, 7 Apr 2020 11:03:50 +0100 Subject: [PATCH 2/2] DOC-6448-Set-java-compatibility-version-in-build-gradle https://issues.couchbase.com/browse/DOC-6448 Update in line with review feedback --- .../ROOT/pages/_partials/gsBuildGradle.adoc | 47 ---------------- .../pages/_partials/gsBuildGradleAndroid.adoc | 54 +++++++++++++++++++ .../pages/_partials/gsBuildGradleJava.adoc | 50 +++++++++++++++++ modules/ROOT/pages/java-android.adoc | 22 ++++---- modules/ROOT/pages/java-platform.adoc | 37 +++++-------- 5 files changed, 130 insertions(+), 80 deletions(-) delete mode 100644 modules/ROOT/pages/_partials/gsBuildGradle.adoc create mode 100644 modules/ROOT/pages/_partials/gsBuildGradleAndroid.adoc create mode 100644 modules/ROOT/pages/_partials/gsBuildGradleJava.adoc diff --git a/modules/ROOT/pages/_partials/gsBuildGradle.adoc b/modules/ROOT/pages/_partials/gsBuildGradle.adoc deleted file mode 100644 index d5f2cc23b..000000000 --- a/modules/ROOT/pages/_partials/gsBuildGradle.adoc +++ /dev/null @@ -1,47 +0,0 @@ -// tag::allContent[] - -application { - // Define the main class for the application. - mainClassName = 'gettingstarted.GettingStarted' -} - -plugins { - id 'java' - id 'application' -} - -// tag::compileOptions[] -// Comment out if none of your source code is Kotlin -kotlinOptions { jvmTarget = '1.8' } - -// Set minimum JVM level to ensure availability of, for example, lambda expressions -compileOptions -{ - targetCompatibility 1.8 - sourceCompatibility 1.8 -}  -// end::compileOptions[] - -// tag::dependencies[] -dependencies { - implementation 'com.couchbase.lite:couchbase-lite-android-ee:{version}' -} -// end::dependencies[] - -// tag::repositories[] -repositories { - maven { - url "https://mobile.maven.couchbase.com/maven2/dev/" - } - google() - jcenter() -} -// end::repositories[] - -// end::allContent[] - -// tag::dependenciesCE[] -dependencies { - implementation 'com.couchbase.lite:couchbase-lite-android:{version}' -} -// end::dependenciesCE[] diff --git a/modules/ROOT/pages/_partials/gsBuildGradleAndroid.adoc b/modules/ROOT/pages/_partials/gsBuildGradleAndroid.adoc new file mode 100644 index 000000000..60ec71265 --- /dev/null +++ b/modules/ROOT/pages/_partials/gsBuildGradleAndroid.adoc @@ -0,0 +1,54 @@ +// tag::allContent[] + +// Define the main class for the application. +application {mainClassName = 'gettingstarted.GettingStarted'} + +plugins { + id 'java' + id 'application' +// ... other section content as required by user +} + + +// tag::compileOptions[] +android { + // Required only if your project has some Kotlin source code + kotlinOptions { jvmTarget = '1.8' } + + // Set minimum JVM level to ensure availability of, for example, lambda expressions + compileOptions { + targetCompatibility 1.8 + sourceCompatibility 1.8 + }  + +// ... other section content as required by user +} +// end::compileOptions[] + +// tag::dependencies[] +dependencies { + implementation "com.couchbase.lite:couchbase-lite-android-ee:${version}" + +// ... other section content as required by user +} +// end::dependencies[] + +// tag::repositories[] +repositories { + maven { url 'https://mobile.maven.couchbase.com/maven2/dev/' } + google() + jcenter() + +// ... other section content as required by user +} +// end::repositories[] + +// end::allContent[] + +// tag::dependenciesCE[] +dependencies { + implementation "com.couchbase.lite:couchbase-lite-android:${version}" + +// ... other section content as required by user +} +// end::dependenciesCE[] diff --git a/modules/ROOT/pages/_partials/gsBuildGradleJava.adoc b/modules/ROOT/pages/_partials/gsBuildGradleJava.adoc new file mode 100644 index 000000000..69d3b0417 --- /dev/null +++ b/modules/ROOT/pages/_partials/gsBuildGradleJava.adoc @@ -0,0 +1,50 @@ + +:packageNm: couchbase-lite-java +// tag::allContent[] + +// Define the main class for the application. +application {mainClassName = 'gettingstarted.GettingStarted'} + +plugins { + id 'java' + id 'application' +} + +// tag::compileOptions[] +// Required only if your project has some Kotlin source code +kotlinOptions { jvmTarget = '1.8' } + +// Set minimum JVM level to ensure availability of, for example, lambda expressions +compileOptions { + targetCompatibility 1.8 + sourceCompatibility 1.8 + +// ... other section content as required by user +}  +// end::compileOptions[] + +// tag::dependencies[] +dependencies { + implementation "com.couchbase.lite:couchbase-lite-java-ee:${version}" + +// ... other section content as required by user + } +// end::dependencies[] + +// tag::repositories[] +repositories { + maven {url 'https://mobile.maven.couchbase.com/maven2/dev/'} + +// ... other section content as required by user + } +// end::repositories[] + +// end::allContent[] + +// tag::dependenciesCE[] +dependencies { + implementation "com.couchbase.lite:couchbase-lite-java:${version}" + +// ... other section content as required by user +} +// end::dependenciesCE[] diff --git a/modules/ROOT/pages/java-android.adoc b/modules/ROOT/pages/java-android.adoc index 913c6b5e0..2e8b192a7 100644 --- a/modules/ROOT/pages/java-android.adoc +++ b/modules/ROOT/pages/java-android.adoc @@ -6,6 +6,7 @@ :ziputils: {examplesdir}/java-android/app/src/main/java/com/couchbase/code_snippets/ZipUtils.java :source-language: java :version: 2.7.0 +:packageNm: couchbase-lite-android :blank-field: ____ :url-issues-java: https://github.com/couchbase/couchbase-lite-android/issues :url-api-references: http://docs.couchbase.com/mobile/{version}/couchbase-lite-android @@ -28,15 +29,15 @@ Community:: -- . Include the following in the `android {}` section: + -[source,groovy,subs=attributes+] +[source,groovy] ---- -include::partial$gsBuildGradle.adoc[tag=compileOptions] +include::partial$gsBuildGradleAndroid.adoc[tag=compileOptions] ---- . Include the following in the `dependencies{}` section: + -[source,groovy,subs=attributes+] +[source,groovy] ---- -include::partial$gsBuildGradle.adoc[tag=dependenciesCE] +include::partial$gsBuildGradleAndroid.adoc[tag=dependenciesCE] ---- -- @@ -45,21 +46,24 @@ Enterprise:: -- . Include the following in the `android {}` section: + -[source,groovy,subs=attributes+] +[source,groovy] ---- -include::partial$gsBuildGradle.adoc[tag=compileOptions] +include::partial$gsBuildGradleAndroid.adoc[tag=compileOptions] ---- + . Include the following in the `dependencies{}` section: + -[source,groovy,subs=attributes+] +[source,groovy] ---- -include::partial$gsBuildGradle.adoc[tag=dependencies] +include::partial$gsBuildGradleAndroid.adoc[tag=dependencies] ---- ++ . Include the following in the `repositories {}` section: + +[source,groovy] ---- -include::partial$gsBuildGradle.adoc[tag=repositories] +include::partial$gsBuildGradleAndroid.adoc[tag=repositories] ---- -- ==== diff --git a/modules/ROOT/pages/java-platform.adoc b/modules/ROOT/pages/java-platform.adoc index d6a14107f..3b13cfe54 100644 --- a/modules/ROOT/pages/java-platform.adoc +++ b/modules/ROOT/pages/java-platform.adoc @@ -3,8 +3,9 @@ include::partial$mobAttrCBL.adoc[] :JP: Java :Android: Java (android) :cblJP: {product} {JP} -:packageNmCE: couchbase-lite-java-{version-full} -:packageNmEE: couchbase-lite-java-ee-{version-full} +:packageNm: couchbase-lite-java +:packageNmCE: {packageNm}-{version-full} +:packageNmEE: {packageNm}-ee-{version-full} :url-api-references: http://docs.couchbase.com/mobile/{version-full}/couchbase-lite-java :hdIndent: :snippet: {snippet-java-jvm} @@ -87,13 +88,13 @@ Compile options + [source,groovy] ---- -include::partial$gsBuildGradle.adoc[tag=compileOptions] +include::partial$gsBuildGradleJava.adoc[tag=compileOptions] ---- Dependencies + [source,groovy] ---- -include::partial$gsBuildGradle.adoc[tag=dependenciesCE] +include::partial$gsBuildGradleJava.adoc[tag=dependenciesCE] ---- Enterprise Edition:: @@ -102,19 +103,19 @@ Compile options + [source,groovy] ---- -include::partial$gsBuildGradle.adoc[tag=compileOptions] +include::partial$gsBuildGradleJava.adoc[tag=compileOptions] ---- Dependencies + [source,groovy] ---- -include::partial$gsBuildGradle.adoc[tag=dependencies] +include::partial$gsBuildGradleJava.adoc[tag=dependencies] ---- Repositories + [source,groovy] ---- -include::partial$gsBuildGradle.adoc[tag=repositories] +include::partial$gsBuildGradleJava.adoc[tag=repositories] ---- . Open the project folder in {gpIDE} and import the {gpBuildTool} settings. @@ -133,9 +134,9 @@ That's it. You're all set to start building your own {cblJP} applications -- see .Sample build.gradle content -[source,groovy,subs=attributes+] +[source,groovy] ---- -include::partial$gsBuildGradle.adoc[tag=allContent] +include::partial$gsBuildGradleJava.adoc[tag=allContent] ---- -- @@ -188,9 +189,7 @@ gradle init + [source,groovy,subs=attributes+] ---- -dependencies { - implementation 'com.couchbase.lite:couchbase-lite-java:2.7.0' -} +include::partial$gsBuildGradleJava.adoc[tag=dependenciesCE] ---- * For Enterprise Edition @@ -198,18 +197,8 @@ dependencies { [source,groovy] ---- -allprojects { - repositories { - google() - jcenter() - maven { - url "https://mobile.maven.couchbase.com/maven2/dev/" - } - } -} -dependencies { - implementation 'com.couchbase.lite:couchbase-lite-java-ee:2.7.0' -} +include::partial$gsBuildGradleJava.adoc[tag=repositories] +include::partial$gsBuildGradleJava.adoc[tag=dependencies] ---- . Open the project folder in {gpIDE} and import the {gpBuildTool} settings.