我正在开发一个本地Maven项目。如何使用包含所有依赖项的项目类路径启动jshell
,以便我可以在JShell中测试项目或依赖项类。
答案 0 :(得分:14)
您可以使用jshell-maven-plugin:
Aggregation aggregation = Aggregation.newAggregation(...);
AggregationResults<Foo> r = mongoTemplate.aggregate(aggregation, "foos", Foo.class);
List<Foo> foos = r.getMappedResults();
将使用项目的运行时路径启动JShell会话。如果要包含测试依赖项,只需在命令中添加-DtestClasspath即可。
源代码:https://github.com/johnpoth/jshell-maven-plugin;欢迎捐款:)完全免责声明:我写了插件。
享受!
答案 1 :(得分:10)
我在执行搜索路径中写了一个简单的shell脚本:
Shell脚本文件: mshell (对于* inux)
mvn dependency:build-classpath -DincludeTypes=jar -Dmdep.outputFile=.cp.txt
jshell --class-path `cat .cp.txt`:target/classes
Shell脚本文件: 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
感谢Jay指出-DincludeTypes = jar maven选项。
答案 2 :(得分:2)
请参阅In Maven, how to output the classpath being used?。
根据:
jshell --help
运行JShell:
jshell --class-path <path>