web-dev-qa-db-ja.com

JShellで、Mavenプロジェクトからクラスパスをインポートする方法

開発中のローカルMavenプロジェクトがあります。 JShell内でプロジェクトまたは依存クラスをテストできるように、すべての依存関係を含むプロジェクトクラスパスを使用してjshellを起動するにはどうすればよいですか。

17
Jianwu Chen

実行検索パスに配置する簡単なシェルスクリプトを書きました。

シェルスクリプトファイル: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に感謝します。

14
Jianwu Chen

Jshell-maven-pluginを使用できます。

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

プロジェクトのランタイムパスを使用してJShellセッションを起動します。テストの依存関係を含める場合は、コマンドに-DtestClasspathを追加するだけです。

ソースコード: https://github.com/johnpoth/jshell-maven-plugin ;貢献は大歓迎です:)完全な免責事項:私はプラグインを書きました。

楽しい!

26
jpoth

Mavenでは、使用されているクラスパスを出力する方法は? を参照してください。

による:

jshell --help

jShellを次のように実行します。

jshell --class-path <path>