В JShell, как импортировать classpath из проекта Maven

У меня есть локальный проект Maven. Как запустить jshell с помощью пути класса проекта со всеми зависимостями, чтобы я мог тестировать классы проектов или зависимостей внутри JShell.

Ответ 1

Я написал простой сценарий оболочки, вставленный в путь поиска выполнения:

Файл сценария оболочки: mshell (для * inux)

mvn dependency:build-classpath -DincludeTypes=jar -Dmdep.outputFile=.cp.txt
jshell --class-path 'cat .cp.txt':target/classes

Файл сценария оболочки: mshell (для Windows cmd.exe)

mvn dependency:build-classpath -DincludeTypes=jar -Dmdep.outputFile=.cp.txt
for /F %i in (.cp.txt) do jshell --class-path "%i;target/classes"

Затем в каталоге проекта maven (для многомодульного проекта убедитесь, что в каталоге модуля вместо родительского каталога) выполните:

$ cd $MAVEN_PROJECT_HOME   #make sure module folder for multi-module project
$ mshell

суть ссылки

Спасибо Джей за указание на -DincludeTypes = опцию jar maven.

Ответ 2

Вы можете использовать jshell-maven-plugin:

mvn com.github.johnpoth:jshell-maven-plugin:1.1:run

который запустит сеанс JShell с указанием пути выполнения вашего проекта. Если вы хотите включить свои тестовые зависимости, просто добавьте -DtestClasspath в команду.

Исходный код: https://github.com/johnpoth/jshell-maven-plugin; взносы приветствуются :) полный отказ от ответственности: я написал плагин.

Наслаждайтесь!