2017-12-07 15 views
2

개발중인 로컬 Maven 프로젝트가 있습니다. jshell을 모든 종속성이있는 프로젝트 클래스 경로로 시작하여 JShell에서 프로젝트 또는 종속성 클래스를 테스트 할 수 있습니다.JShell에서 Maven 프로젝트에서 클래스 경로를 가져 오는 방법

+0

이것은 jshell 튜토리얼이나 온라인으로 명확하게 다루지 않는 유용한 유스 케이스로 보인다. – Jay

+0

exec-maven-plugin은 어떻게 사용합니까? – khmarbaise

+0

명령 줄 전용 솔루션을 찾으십니까? IDE 전용 솔루션은 다음과 같습니다. https://stackoverflow.com/questions/48143960/how-to-import-a-custom-class-in-intellij-jshell-console – Jay

답변

1

In Maven, how to output the classpath being used?을 참조하십시오.

jshell --help 

실행 JShell에 :에 따르면

jshell --class-path <path> 
+0

이것은 프로젝트가 아니라 종속성 클래스를 제공합니다. 수업. 그것들을 포함시키는 간단한 방법이 있습니까? 그렇다면 전체 프로젝트에서 REPL을 사용할 수 있습니까? – Jay

+0

작동 샘플 또는이 기능이 실제로 어떻게 작동하는지에 대한 자세한 설명으로이를 업데이트 할 수 있습니까? – nullpointer

2

내가 실행 검색 경로에 넣어 간단한 쉘 스크립트를 작성 :

쉘 스크립트 파일 :

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

(3210)는 그 다음 받는다는 프로젝트 디렉토리에 실행 (멀티 모듈 프로젝트, 대신 상위 디렉토리의 모듈 디렉토리에 있는지를 확인) :

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

감사 제이 -DincludeTypes = 항아리 받는다는 옵션을 지적.

+2

mvn 종속성을 사용하는 경우 : build-classpath -DincludeTypes = jar 그러면 pom 종속성이 포함되지 않습니다. – Jay

+0

이것이 실제로 작동했는지 궁금합니다. 나는 같은 프로젝트의 클래스를 사용하기 위해 샘플 프로젝트를 시도했지만 실패했다. 이 작품을 확인할 수 있다면 다른 스레드를 만들고 내가 직면하고있는 문제를 제기 할 수 있습니다. – nullpointer

+0

mshell 스크립트가 유용합니다. 먼저 "빌드"디렉토리를 생성하는 빌드를 먼저 수행해야합니다. –