Create and Run Your First ZK Application with Gradle"

From Documentation
Line 49: Line 49:
  
 
== Run the Project ==
 
== Run the Project ==
 +
 +
=== Run with Gretty ===
 +
 +
The example can be run using the [https://plugins.gradle.org/plugin/org.gretty gradle plugin: org.gretty]
 +
 +
    ./gradlew appRun
 +
 +
Explicitly specifying Jetty
 +
 +
    ./gradlew jettyRun
 +
 +
or Tomcat
 +
 +
    ./gradlew tomcatRun
 +
 +
=== Run with Jetty-Runner ===
  
 
For shortest startup time an embedded [https://www.eclipse.org/jetty/documentation/current/runner.html jetty-runner] can be run directly from a main class <code>org.eclipse.jetty.runner.Runner</code> using a minimum configuration.
 
For shortest startup time an embedded [https://www.eclipse.org/jetty/documentation/current/runner.html jetty-runner] can be run directly from a main class <code>org.eclipse.jetty.runner.Runner</code> using a minimum configuration.
Line 68: Line 84:
 
     INFO: Started @1578ms
 
     INFO: Started @1578ms
  
'''TIP''': this main class can be executed directly in your IDE (without additional plugins) for easier debugging and even faster restarts, if hot code replacement or automatic resource loading fails.  
+
=== Inside the IDE ===
 +
 
 +
'''TIP''': The jetty-runner main class (<code>org.eclipse.jetty.runner.Runner</code>) can be executed directly in your IDE (without additional plugins) for easier debugging and even faster restarts, if hot code replacement or automatic resource loading fails.  
 
The minimum '''program arguments''' are as simple as passing in a webapp-folder (and an optional port/context path)
 
The minimum '''program arguments''' are as simple as passing in a webapp-folder (and an optional port/context path)
  

Revision as of 08:56, 31 December 2020


DocumentationZK Installation GuideQuick StartCreate and Run Your First ZK Application with Gradle
Create and Run Your First ZK Application with Gradle



The zk-gradle example

The example project is located on github/zkoss-demo/zk-gradle. To use it all you need is a command line interface (and optional: git).

Since gradle is a complex tool a basic understanding about gradle itself will help understanding the example -> please refer to the gradle documentation pages.

Download/Clone the example project

With the git command line installed all you need is to clone the example repository:

   git clone [email protected]:zkoss-demo/zk-gradle.git

Alternatively you can download the example as a zip-package.

Once cloned/unzipped open a command line in the project folder.

In order to get started immediately the project includes the gradle-wrapper. The wrapper comes with 2 scripts gradlew.bat (windows) and gradlew (linux/mac) and a folder /gradle containing a laucher jar which will download gradle itself with all its required dependencies without having to install gradle manually.

The first time you'll execute any of the commands in the following section gradle will download itself and all the required project dependencies. This will initially take quite a few minutes while showing the overall progress. Subsequent executions will be faster as gradle will cache the once downloaded resources in the .gradle/ subfolder (it's safe to delete this folder, gradle will just download the dependencies again next time it is executed)

build.gradle the build script [1]

settings.gradle the build settings e.g. contains the project name [2]

gradle.properties here contains the dependency versions [3]

Useful build tasks

NOTE: Using the windows command line (cmd) you have to omit the "./" in front of the commands e.g.

gradlew clean

build the war file (in the subfolder build/libs/zk-gradle.war)

./gradlew war

run the Zats Tests (also creates a test report in build/reports/tests/test/index.html)

./gradlew test

combine both

./gradlew test war

clean the build

./gradlew clean

list available tasks (shows many more options ...)

./gradlew tasks

Run the Project

Run with Gretty

The example can be run using the gradle plugin: org.gretty

   ./gradlew appRun

Explicitly specifying Jetty

   ./gradlew jettyRun

or Tomcat

   ./gradlew tomcatRun

Run with Jetty-Runner

For shortest startup time an embedded jetty-runner can be run directly from a main class org.eclipse.jetty.runner.Runner using a minimum configuration.

   ./gradlew startJettyRunner

After a short startup time (the first startup will download the dependencies so it will take a bit longer) you'll see this output and the server will run under the same local URL.

   Nov 01, 2019 10:41:17 AM org.eclipse.jetty.util.log.Log initialized
   INFO: Logging initialized @181ms to org.eclipse.jetty.util.log.Slf4jLog
   ...
   INFO: Runner
   Nov 01, 2019 10:41:17 AM org.eclipse.jetty.server.Server doStart
   INFO: jetty-9.4.21.v20190926; built: 2019-09-26T16:41:09.154Z; git: 72970db61a2904371e1218a95a3bef5d79788c33; jvm 11.0.4+11-post-Ubuntu-1ubuntu218.04.3
   ...
   Nov 01, 2019 10:41:18 AM org.eclipse.jetty.server.AbstractConnector doStart
   INFO: Started ServerConnector@90f6bfd{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
   Nov 01, 2019 10:41:18 AM org.eclipse.jetty.server.Server doStart
   INFO: Started @1578ms

Inside the IDE

TIP: The jetty-runner main class (org.eclipse.jetty.runner.Runner) can be executed directly in your IDE (without additional plugins) for easier debugging and even faster restarts, if hot code replacement or automatic resource loading fails. The minimum program arguments are as simple as passing in a webapp-folder (and an optional port/context path)

   --path /zk-gradle --port 8085 src/main/webapp

or simply

   src/main/webapp

Import a Gradle project into your IDE

An exemplary development run config for IntelliJ IDEA

The example project doesn't include or require any IDE specific settings and can be imported into your preferred IDE supporting gradle.

In Eclipse you can use the buildship plugin

For IntelliJ IDEA just follow the Help page: Working with Gradle Projects



Last Update : 2020/12/31

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.