Ich habe ein Maven-Projekt, das eine XSLT-Datei lädt und führt die Transformation zusammen mit anderen Verarbeitung auf das Ergebnis. Wenn der Benutzer die Anwendung ausführt, stellt der Benutzer normalerweise den xslt-Dateipfad bereit, der geladen werden soll. Aber ich schließe einige Standard-xslt-Dateien ein, die in meiner Anwendung gebündelt sind, die der Benutzer benutzen kann, ohne eine externe xslt-Datei zu laden. Ich tue dies, indem ich sie zu src/main/resources/xslt hinzufüge. Mein Problem ist, dass ich in der Testphase Tests gegen diese xslt-Dateien ausführen möchte. Wie kann ich das erreichen? Soll ich die src/main/resources/xslt-Inhalte nach target/irgendwo kopieren und diese in meinen Testklassen-Code laden? Welches Plugin wird dafür verwendet?Wie Maven Ressourcen auch als Testressourcen zu verwenden
11
A
Antwort
17
Mein Problem ist, dass ich in der Testphase Tests gegen diese xslt-Dateien ausführen möchte. Wie kann ich das erreichen?
Es gibt nichts zu tun, target/classes
ist auf dem Klassenpfad der Tests. Mehr der Klassenpfad für die Tests genau ist:
- erste
target/test-classes
- dann
target/classes
- dann
dependencies
So Ressourcen aus src/main/resources
(die in target/classes
kopiert werden) sind von Tests sichtbar.
2
Wenn Sie eine Datei setzen foo.txt
innerhalb src/test/resources/
, können Sie dies über öffnen:
// try-with-resource (Java 1.7)
try (InputStream is = getClass().getClassLoader().getResourceAsStream("foo.txt")) {
// do something with is...
}
Sie können auch einen Blick auf die maven-resources-plugin.
Verwandte Themen
- 1. Scalatest mit wichtigsten Ressourcen, nicht Testressourcen
- 2. Share Testressourcen zwischen Maven-Projekten
- 3. Wie filtere ich Testressourcen in Maven?
- 4. Maven (todsichere): Testressourcen von src/test/java kopieren
- 5. FileNotFoundException - Java-Testressourcen
- 6. Maven Assembly Plugin und Ressourcen
- 7. Konvertieren von Maven-Ressourcen in Graplore-Ressourcen
- 8. Maven filtern Ressourcen
- 9. Hinzufügen zusätzlicher Ressourcen zu einem Maven Pom
- 10. Maven Ressourcen und Docker-Maven-Plugin
- 11. Verwenden von Dateien als Ressourcen mit URLClassLoader
- 12. gradle/intellij - geteilte Testressourcen
- 13. maven failsafe plugin. Kopieren Ressourcen
- 14. Wie Maven mit Jazz RTC zu verwenden?
- 15. Nichtkompilierte Abhängigkeiten in Maven angeben und als Ressourcen packen
- 16. Maven: Ressourcen in JAR aufnehmen
- 17. Filter-Ressourcen maven-shade-plugin
- 18. Executeable jar mit maven, um Ressourcen zu enthalten
- 19. Maven: Wie Anlegesteg zu verwenden: Führen Sie in einem Multi-Modul Maven-Projekt, ohne zu installieren
- 20. So fügen Sie Ressourcen zu jar mit maven shade plugin
- 21. Linux: Maven Ressourcen: Copy-Ressourcen-Plugin. Parameter mit Leerzeichen
- 22. Maven Multi-Modul lädt keine Ressourcen
- 23. Statische Ressourcen zwischen Maven-Modulen teilen
- 24. Android Maven Plugin: renameManifestPackage führt zu Ressourcen $ NotFoundException
- 25. Maven und Ant Plugin Ressourcen intelligent
- 26. Maven-Test/Ressourcen-Verzeichnis und Integrationstest
- 27. Verwenden Sie Maven, um Programme zu starten
- 28. Einrichten von Maven Ressourcen beim Testen
- 29. Wie Ressourcen von meinem Maven Build ausschließen, packagingExcludes nicht
- 30. Relevante Weg zu den Ressourcen in Maven Urbilder
Ja ... nach dem Posten der Frage habe ich explizit versucht, das zu tun und es funktioniert. Ich hatte gerade den Eindruck, dass es eine Konvention ist, dass src/* nur für die Erzeugung, Verarbeitung und Kompilierung gedacht ist und dass jede Phase danach nur in Ziel/Pfade gehen sollte, um ihre Arbeit zu erledigen. Ist das wahr? – Paralife
@Paralife Ihre Ressourcen werden in 'target/classes' kopiert (und Testressourcen werden in' target/test-classes' kopiert). Ich habe das geklärt. Beantwortet es die Frage? –
Ah ok. Ich habe nicht verstanden, dass sie kopiert werden. Ich nur, dass src/main/resources ist sichtbar von Tests direkt. Ich sehe es jetzt. Vielen Dank. – Paralife