2017-06-16 2 views
0

Ich habe eine ausführbare jar mit einem eingebetteten Tomcat, die dank Tomcat7-Maven-Plugin erstellt wurde: tomcat7: exec-war.Bieten zusätzliche Klassenpfad auf jar mit eingebetteten Tomcat

Ich muss einen zusätzlichen Klassenpfad für einige Jar bereitstellen, da ich sie nicht direkt in meine ausführbare Jar aufnehmen kann. Wie kann ich diesen Klassenpfad bereitstellen?

  • Ich kann export CLASSPATH nicht ausführen, bevor ich meine ausführbare Jar starten, weil catalina.sh/.bat den CLASSPATH Wert löschen.
  • Ich kann keine setenv.sh/.bat zur Verfügung stellen, weil die ausführbare Jar von der Maven-Plugin erstellt wird.
  • Ich kann Eigenschaft common.loader von catalina.properties nicht aktualisieren, weil ich keine Kontrolle über diese Datei habe, die von Maven-Plugin generiert wird.

Hinweis: Ich möchte nicht einen fest codierten Pfad zur Lib in der ausführbaren Jar angeben.

Antwort

0

Eigentlich sind alle Jar-Dateien in der WAR-Datei unter WEB-INF/lib im Klassenpfad für die WAR-Datei classloader. So können Sie Ihr zusätzliches Glas in den Krieg verpacken. Ich bin nicht vertraut mit Maven Tomcat-Plugin, aber nur um seine Optionen zu sehen. Es muss die Fähigkeit haben, zusätzliche Gläser in die Kriegsdatei zu legen (vielleicht nur durch Abhängigkeiten in compile oder "Laufzeit" Umfang. Es ist eine Standardeigenschaft.

Wenn Ihr zusätzliches Glas außerhalb des Krieges sein muss, müssen Sie es im System geben Classpath für Java, wenn Sie Ihre ausführbare jar ausführen (durch -cp Parameter, denke ich). Oder Sie können den Pfad zu ihr in der MANIFEST.MF-Datei Ihres jar.

+0

Danke, aber mein zusätzliches Glas muss außerhalb des Krieges sein/ausführbares jar. Ich denke, dass -cp ignoriert wird, wenn wir es mit -jar verwenden. Ich habe es versucht und es scheint nicht zu funktionieren. Außerdem möchte ich keinen festcodierten Pfad zur lib in MANIFEST.MF angeben (Frage aktualisiert). –

Verwandte Themen