Ich habe ein lokales Maven-Projekt in der Entwicklung. Wie kann ich jshell
mit dem Projektklassenpfad mit allen Abhängigkeiten starten, so dass ich Projekt- oder Abhängigkeitsklassen in JShell testen kann.In JShell, wie Klassenpfad aus einem Maven-Projekt zu importieren
Antwort
Siehe In Maven, how to output the classpath being used?.
Nach:
jshell --help
Laufe JShell mit:
jshell --class-path <path>
Dies gibt Ihnen die Abhängigkeitsklassen, aber nicht das Projekt Klassen. Gibt es einen einfachen Weg, diese auch einzuschließen, so dass Sie eine REPL für Ihr gesamtes Projekt verwenden können? – Jay
Könnten Sie dies mit einem funktionierenden Beispiel oder einer detaillierten Erklärung aktualisieren, wie funktioniert das eigentlich für Sie? – nullpointer
ich einen einfachen Shell-Skript in der Ausführung Suchpfad setzen schrieb:
Shell-Skript-Datei: mShell
mvn dependency:build-classpath -DincludeTypes=jar -Dmdep.outputFile=.cp.txt
jshell --class-path `cat .cp.txt`:target/classes
Dann im Maven Projektverzeichnis (für Projekt mit mehreren Modulen, stellen Sie sicher, statt übergeordnetes Verzeichnis in dem Modul-Verzeichnis) auszuführen:
$ cd $MAVEN_PROJECT_HOME #make sure module folder for multi-module project
$ mshell
Dank Jay für den Hinweis auf -DincludeTypes = jar Maven Option.
Wenn Sie mvn-Abhängigkeit verwenden: build-classpath -DincludeTypes = jar, dann werden die Pom-Abhängigkeiten nicht berücksichtigt. – Jay
Ich wundere mich, hat das tatsächlich funktioniert? Ich habe versucht, mit einem Beispielprojekt die Klassen aus dem gleichen zu nutzen, habe es aber versäumt. Wenn Sie das bestätigen könnten, könnte ich einen anderen Thread erstellen und das Problem darstellen, dem ich gegenüberstehe. – nullpointer
Das Mshell-Skript funktioniert für mich. Sie müssen erst maven build erstellen, damit das Verzeichnis "target" generiert wird. –
- 1. Klassenpfad in Jshell anzeigen
- 2. Importieren von privaten Paketklassen in JShell
- 3. Wie aus Geschwistermodul in einem Paket importieren?
- 4. JShell führt nichts aus mit Git Bash
- 5. Freimarkervorlage aus Klassenpfad setzen
- 6. Multiline-Paste in Jshell
- 7. Wie führe ich ein Java Script mit jshell aus?
- 8. Gibt es eine Möglichkeit, Importe in JShell zu entfernen?
- 9. Wie aus Unterverzeichnis von einem Knotenmodul importieren?
- 10. wie Reflektionspaket zu verwenden, um ein Objekt aus einem Klassenpfad zu erstellen
- 11. Bild aus Pfad in einem Objekt importieren
- 12. Bytecode aus dem Klassenpfad lesen
- 13. JShell Dollar Variablenname Nummerierung
- 14. wie matplotlib in Python zu importieren
- 15. individuellen Feedback-Modus erstellen in jshell
- 16. Java 9 - Wie sehen Sie Hilfe zu Jshell?
- 17. Wie starte ich eine JShell-Datei?
- 18. In JShell deklarierte Methode sind Lambdas?
- 19. Den Klassenpfad in einem Servlet steuern
- 20. Gradle aus Datei auf Klassenpfad anwenden?
- 21. Import, wenn ein Modul aus einem Paket zu importieren versuchen
- 22. eine Klasse aus einem anderen Paket zu importieren - Python
- 23. Zugriff auf "Parent-Bereich" in JShell
- 24. Maven überschreibt Dateien im Klassenpfad, wenn Ordner Y existiert
- 25. Klassenpfad einschließlich JAR in einem JAR
- 26. Wie Klassenpfad in Eclipse ändern?
- 27. Importieren einer bestimmten Funktion aus einem Modul
- 28. Python und importieren aus einem anderen Paket
- 29. JDK 9 jshell printf() Sonderbehandlung?
- 30. Importieren eines Raumkalenderkalenders aus einem öffentlichen Ordner
Dies scheint ein nützlicher Anwendungsfall zu sein, der von jshell-Tutorials oder anderswo nicht eindeutig behandelt wird. – Jay
Was ist mit der Verwendung von exec-Maven-Plugin? – khmarbaise
Suchen Sie eine Befehlszeilenlösung? Hier ist eine IDE-spezifische Lösung: https://stackoverflow.com/questions/48143960/how-to-import-a-custom-class-in-intellij-jshell-console – Jay