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

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

5 ответов

Решение

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

Файл сценария оболочки: mshell

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

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

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

суть ссылки

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

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

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

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

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

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

См. В Maven, как вывести используемый classpath?,

В соответствии с:

jshell --help

запустить JShell с:

jshell --class-path <path>

Из-за ошибки JDK 8177650 решения здесь с использованием --class-pathвариант или запуск из maven нарушит автозаполнение пакета. Вот однострочный bash, который работает с автозаполнением пакетов:

      CLASSPATH=`mvn dependency:build-classpath -DincludeTypes=jar -Dmdep.outputFile=/dev/stderr 2>&1 >/dev/null`:target/classes jshell

Использовать Groovy-оболочку ( groovysh) вместо этого и сделать groovy.grape.Grape.grab([group:"<maven group>", artifact:"<maven artifact ID>", version:"<version>"])- это даст вам REPL с необходимыми зависимостями Maven в пути к классам.

Не уверен, что у jshell есть какие-либо преимущества перед оболочкой Groovy, которые стоят боли с зависимостями Maven.

Другие вопросы по тегам