jshell-maven-plugin

Maven Plugin for the Java Shell Tool (JShell)

APACHE-2.0 License

Stars
138
Committers
5

= jshell-maven-plugin

Maven Plugin for the Java Shell Tool ( https://docs.oracle.com/javase/9/jshell/introduction-jshell.htm[JShell] )

== Run it

[source,shell]

$mvn compile com.github.johnpoth:jshell-maven-plugin:1.4:run
| Welcome to JShell -- Version 10
| For an introduction type: /help intro
jshell>

Now you can start using your project's runtime classpath:

[source,shell]

jshell> var foo = new org.apache.camel.component.beanclass.ClassComponent()
foo ==> org.apache.camel.component.beanclass.ClassComponent@4d1b0d2a
jshell>

To you use your project's test classpath, add -DtestClasspath to the command and make sure you have compiled your test classes:
[source,shell]

$mvn test-compile com.github.johnpoth:jshell-maven-plugin:1.4:run

If you notice some resources missing, you may have to invoke the install phase instead:
[source,shell]

$mvn install com.github.johnpoth:jshell-maven-plugin:1.4:run -DskipTests

Once you project has been built properly, and you haven't updated your source files, you can skip the building phase and invoke the plugin directly:
[source,shell]

$mvn com.github.johnpoth:jshell-maven-plugin:1.4:run

== Options

[cols="1v,1v,1v"] |=== |Name |Description |Default value|

class-path|Explicitly set JShell's class path||

module-path|Set JShell's module path||

add-modules|Add modules from JShell's module path||

add-exports|Explicitly add exports||

scripts|Add startup scripts to JShell ',' delimited||

useProjectClasspath|Use project class path in JShell|True|

properties| Configure Java properties||

runtimeClasspath| Add ./target/classes in classpath|false|

testClasspath| Add ./target/test-classes in classpath|true|

options| Add other options to JShell. See https://docs.oracle.com/javase/9/tools/jshell.htm#GUID-C337353B-074A-431C-993F-60C226163F00__OPTIONSFORJSHELL-AF4AC615[docs]|| |===

Reminder: plugin parameters when passed through the command line should be prefixed with 'jshell.' e.g: mvn com.github.johnpoth:jshell-maven-plugin:1.4:run -Djshell.scripts="script0,script1"

== Adding to pom.xml

To use the plugin's shortened prefix jshell, declare the plugin in your pom.xml

[source,xml]

And now you'll be able to run it by typing mvn jshell:run

[source,shell]

$mvn jshell:run
| Welcome to JShell -- Version 10
| For an introduction type: /help intro
jshell>

Works on Java 9, 10 and 11+ Enjoy!