Ich migriere gerade unseren Build-Prozess von Eclipse / Ant zu Maven / M2Eclipse / Artifactory. Ich habe eine Webapp als WTP-Projekt in Eclipse. Ich habe es mit m2eclipse nach Maven migriert.
Die Kompilierung läuft einwandfrei von der Eclipse-IDE aus.
Wenn ich jedoch versuche, aus Maven CLI zu kompilieren (mvn clean & mvn compile
), Beschwert sich Maven, die von der Tomcat-Umgebung bereitgestellten Bibliotheken nicht gefunden zu haben (z Anmerkungen-api, Servlet-api, usw, ...).
Fairerweise genug: Diese Abhängigkeiten werden von WTP as bereitgestellt Java resources / Libraries / ApacheTomcat6
. Maven kennt sie nicht.
Ich könnte dies im Build-Pfad deaktivieren und jede entsprechende Abhängigkeit in meinem POM hinzufügen, aber ich befürchte, dies würde Maven dazu veranlassen, sie erneut in meiner Webapp einzusetzen (WEB-INF/libs
).
Also, was ist der beste Weg, um dies zu sagenDie Anwendung wird in einer bekannten Umgebung ausgeführt und bietet die folgenden Bibliotheken ". Gibt es ein allgemeines Tomcat-POM, das ich als Abhängigkeit hinzufügen könnte?
Vielen Dank im Voraus für Ihre Beratung. Grüße,
Raphael
Antworten:
11 für die Antwort № 1Eine Möglichkeit, dies zu handhaben, besteht darin, diese Abhängigkeiten mit Gültigkeitsbereich zu deklarieren provided
. Diese Abhängigkeiten stehen zum Kompilieren und Testen zur Verfügung, werden jedoch nicht von maven in die Webanwendung gepackt. Zum Beispiel,
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>