開発中のローカルMavenプロジェクトがあります。 JShell内でプロジェクトまたは依存クラスをテストできるように、すべての依存関係を含むプロジェクトクラスパスを使用してjshell
を起動するにはどうすればよいですか。
実行検索パスに配置する簡単なシェルスクリプトを書きました。
シェルスクリプトファイル: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オプションを指摘してくれたJayに感謝します。
Jshell-maven-pluginを使用できます。
mvn com.github.johnpoth:jshell-maven-plugin:1.1:run
プロジェクトのランタイムパスを使用してJShellセッションを起動します。テストの依存関係を含める場合は、コマンドに-DtestClasspathを追加するだけです。
ソースコード: https://github.com/johnpoth/jshell-maven-plugin ;貢献は大歓迎です:)完全な免責事項:私はプラグインを書きました。
楽しい!
Mavenでは、使用されているクラスパスを出力する方法は? を参照してください。
による:
jshell --help
jShellを次のように実行します。
jshell --class-path <path>