Starts a nrepl server for the project. To provide your own handler, eg. to use custom nrepl middlewares, put the code into a separate sourceSet and tell the task to use your specific handler factory.
sourceSets { dev }
clojureRepl {
handler = "my.repl/handler"
}
And in src/dev/clojure/my/repl.clj:
(ns my.repl
(:require
[clojure.tools.nrepl.server :as repl]))
(defn handler
[]
(repl/default-handler #'my-middleware))
If all you want is to specify custom middleware, there is a
short-hand in the middleware option. Here you can
specify the fully-qualified names of the middleware in the desired
order.
clojureRepl {
middleware << "my.repl/middleware"
}
Some environments need certain support code to be initialized from
the classpath. For example David Greenberg's redl or Petit Laurent's
counterclockwise. You can specify such namespaces via the
injections option.
clojureRepl {
injections = [ "redl.core", "redl.complete", "ccw.debug.serverrepl" ]
}
Note: You have to specify the nrepl version to use
manually. Eg. by using the development configuration or
as part of your application.
build.gradle
is touched between the runs. Then the repl has to be stopped
and restarted afresh to allow again parallel builds.| Fields inherited from class | Fields |
|---|---|
class org.gradle.api.DefaultTask |
TASK_NAME, TASK_DESCRIPTION, TASK_GROUP, TASK_TYPE, TASK_DEPENDS_ON, TASK_OVERWRITE, TASK_ACTION, TASK_CONSTRUCTOR_ARGS |
| Type | Name and description |
|---|---|
java.lang.Object |
classpathClasspath required to generate the documentation. |
java.lang.Object |
handlerThe fully qualified name of the repl handler. |
java.lang.Object |
injectionsA list of namespaces which need to be reqired to initialise the repl environment. |
java.lang.Object |
jvmOptionsA Closure configuring the underlying exec spec.
|
java.lang.Object |
middlewareA list of fully qualified names of middlewares. |
java.lang.Object |
portThe port for the repl server to listen on. |
| Methods inherited from class | Name |
|---|---|
class org.gradle.api.DefaultTask |
org.gradle.api.DefaultTask#getProject(), org.gradle.api.DefaultTask#setDescription(java.lang.String), org.gradle.api.DefaultTask#setGroup(java.lang.String), org.gradle.api.DefaultTask#getAnt(), org.gradle.api.DefaultTask#getLogging(), org.gradle.api.DefaultTask#getLogging(), org.gradle.api.DefaultTask#getDidWork(), org.gradle.api.DefaultTask#getDependsOn(), org.gradle.api.DefaultTask#setDependsOn(java.lang.Iterable), org.gradle.api.DefaultTask#dependsOn([Ljava.lang.Object;), org.gradle.api.DefaultTask#onlyIf(groovy.lang.Closure), org.gradle.api.DefaultTask#onlyIf(org.gradle.api.specs.Spec), org.gradle.api.DefaultTask#setOnlyIf(org.gradle.api.specs.Spec), org.gradle.api.DefaultTask#setOnlyIf(groovy.lang.Closure), org.gradle.api.DefaultTask#setDidWork(boolean), org.gradle.api.DefaultTask#doFirst(groovy.lang.Closure), org.gradle.api.DefaultTask#doFirst(java.lang.String, org.gradle.api.Action), org.gradle.api.DefaultTask#doFirst(org.gradle.api.Action), org.gradle.api.DefaultTask#doLast(groovy.lang.Closure), org.gradle.api.DefaultTask#doLast(org.gradle.api.Action), org.gradle.api.DefaultTask#doLast(java.lang.String, org.gradle.api.Action), org.gradle.api.DefaultTask#getEnabled(), org.gradle.api.DefaultTask#getOutputs(), org.gradle.api.DefaultTask#getOutputs(), org.gradle.api.DefaultTask#getDestroyables(), org.gradle.api.DefaultTask#getLocalState(), org.gradle.api.DefaultTask#getTemporaryDir(), org.gradle.api.DefaultTask#mustRunAfter([Ljava.lang.Object;), org.gradle.api.DefaultTask#setMustRunAfter(java.lang.Iterable), org.gradle.api.DefaultTask#getMustRunAfter(), org.gradle.api.DefaultTask#finalizedBy([Ljava.lang.Object;), org.gradle.api.DefaultTask#setFinalizedBy(java.lang.Iterable), org.gradle.api.DefaultTask#getFinalizedBy(), org.gradle.api.DefaultTask#shouldRunAfter([Ljava.lang.Object;), org.gradle.api.DefaultTask#setShouldRunAfter(java.lang.Iterable), org.gradle.api.DefaultTask#setActions(java.util.List), org.gradle.api.DefaultTask#getTaskDependencies(), org.gradle.api.DefaultTask#getTaskDependencies(), org.gradle.api.DefaultTask#getShouldRunAfter(), org.gradle.api.DefaultTask#usesService(org.gradle.api.provider.Provider), org.gradle.api.DefaultTask#getTimeout(), org.gradle.api.DefaultTask#getLogger(), org.gradle.api.DefaultTask#configure(groovy.lang.Closure), org.gradle.api.DefaultTask#configure(groovy.lang.Closure), org.gradle.api.DefaultTask#getDescription(), org.gradle.api.DefaultTask#property(java.lang.String), org.gradle.api.DefaultTask#setEnabled(boolean), org.gradle.api.DefaultTask#hasProperty(java.lang.String), org.gradle.api.DefaultTask#getGroup(), org.gradle.api.DefaultTask#getInputs(), org.gradle.api.DefaultTask#getInputs(), org.gradle.api.DefaultTask#setProperty(java.lang.String, java.lang.Object), org.gradle.api.DefaultTask#compareTo(org.gradle.api.Task), org.gradle.api.DefaultTask#compareTo(java.lang.Object), org.gradle.api.DefaultTask#getName(), org.gradle.api.DefaultTask#getActions(), org.gradle.api.DefaultTask#getState(), org.gradle.api.DefaultTask#getState(), org.gradle.api.DefaultTask#getPath(), org.gradle.api.DefaultTask#getExtensions(), org.gradle.api.DefaultTask#getIdentityPath(), org.gradle.api.DefaultTask#getStandardOutputCapture(), org.gradle.api.DefaultTask#getConvention(), org.gradle.api.DefaultTask#getAsDynamicObject(), org.gradle.api.DefaultTask#getTaskIdentity(), org.gradle.api.DefaultTask#injectIntoNewInstance(org.gradle.api.internal.project.ProjectInternal, org.gradle.api.internal.project.taskfactory.TaskIdentity, java.util.concurrent.Callable), org.gradle.api.DefaultTask#getTaskActions(), org.gradle.api.DefaultTask#hasTaskActions(), org.gradle.api.DefaultTask#getOnlyIf(), org.gradle.api.DefaultTask#getImpliesSubProjects(), org.gradle.api.DefaultTask#setImpliesSubProjects(boolean), org.gradle.api.DefaultTask#replaceLogger(org.gradle.api.logging.Logger), org.gradle.api.DefaultTask#getTemporaryDirFactory(), org.gradle.api.DefaultTask#prependParallelSafeAction(org.gradle.api.Action), org.gradle.api.DefaultTask#appendParallelSafeAction(org.gradle.api.Action), org.gradle.api.DefaultTask#isHasCustomActions(), org.gradle.api.DefaultTask#getRequiredServices(), org.gradle.api.DefaultTask#getSharedResources(), org.gradle.api.DefaultTask#isEnabled(), org.gradle.api.DefaultTask#wait(long, int), org.gradle.api.DefaultTask#wait(long), org.gradle.api.DefaultTask#wait(), org.gradle.api.DefaultTask#equals(java.lang.Object), org.gradle.api.DefaultTask#toString(), org.gradle.api.DefaultTask#hashCode(), org.gradle.api.DefaultTask#getClass(), org.gradle.api.DefaultTask#notify(), org.gradle.api.DefaultTask#notifyAll() |
Classpath required to generate the documentation.
The fully qualified name of the repl handler.
A list of namespaces which need to be reqired to initialise the repl environment.
A Closure configuring the underlying exec spec.
This may be used to set eg. heap sizes etc.
A list of fully qualified names of middlewares. Note:
unused in case a custom handler is set.
The port for the repl server to listen on. A string or integer.