У меня есть локальный проект Maven. Как запустить jshell
с помощью пути класса проекта со всеми зависимостями, чтобы я мог тестировать классы проектов или зависимостей внутри JShell.
В JShell, как импортировать classpath из проекта Maven
Ответ 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; взносы приветствуются :) полный отказ от ответственности: я написал плагин.
Наслаждайтесь!
Ответ 3
См. В Maven, как вывести путь к классам, который используется? ,
В соответствии с:
jshell --help
запустить JShell с:
jshell --class-path <path>