wie entfernen .jsp von .jar-Dateien nach Overlay verarbeitet wird
Frage
Ich habe eine Maven-Modul mit dem Namen views
eine .jsp Datei \ Calendar.jsp enthält. Ich habe einen anderen maven Modul namens core
, die auf views
Modul abhängig ist. Die Verpackung Art von views
Modul ist Glas während des von core
Modul ist Krieg.
Ich habe overlay
konfiguriert, um die .jsp Dateien von views.jar
zu WEB-INF \ Ansichten Ordner (von core.war
) zu kopieren.
<configuration>
<overlays>
<overlay>
<groupId>org.opensource</groupId>
<artifactId>views</artifactId>
<type>jar</type>
<includes>
<include>**/*.jsp</include>
</includes>
<targetPath>WEB-INF/views</targetPath>
</overlay>
</overlays>
</configuration>
Die overlay
Konfiguration funktioniert gut und es hat Kopieren .jsp Dateien von views.jar
zu WEB-INF \ Ansichten Ordner (von core.war
).
Aber das Problem ist, dass es nicht diese .jsp Dateien aus dem views.jar
nicht entfernt. Also, mein core.war
endet mit doppelten .jsp-Dateien (eine Kopie in WEB-INF / Ordner Sichten und die anderen Kopie in views.jar
) nach oben. drastisch Als Ergebnis erhöht sich die Größe des core.war
. (Die .jsp-Dateien, die in views.jar
sind überflüssig, weil sie nicht während der Ausführung von Webapp verwendet werden.)
Also, die Frage ist: - So konfigurieren Sie overlay
zu tun Cut + Paste Operation anstelle von Kopieren + Betrieb einfügen. Ist dies nicht overlay
verwenden getan werden kann, gibt es eine andere (maven friendly) Lösung?
Lösung
mag Maven zu vermeiden, mit abhängigen Artefakte Manipulationen, die bereits in den lokalen oder Remote-Repositories installiert wurden. Ich bin sicher, das ist der Fall, dass Ihre hier gehen zu finden, mit jeder Lösung aus der Overlay-Funktionalität für Ihren Krieg Modul.
Es gibt einen anderen Weg, dies zu lösen, und das ist einen Schritt zurück und Blick auf Ihre Ansichten wieder Modul zu nehmen. Was Sie wirklich tun müssen, ist erstellen zwei Gläser mit den Ansichten Modul, eine, die alle Klassen enthält, die andere nur die JSP-Dateien enthalten und dass Artefakt mit einem Klassifizierer zu speichern. Sie können die Montage Plugin um dies zu erreichen zu verwenden. Im Kernmodul, nehmen Sie die JSP Artefakt mit dem Klassifikator und dann verwenden, das Modul des Krieges Schöpfung zu überlagern.