maven2: ohne Verzeichnis von WAR
-
04-10-2019 - |
Frage
Ich habe versucht, diese ausschließt ganzes Verzeichnis ($ {basedir} / src / main / webapp / webscripts) aus meiner WAR-Datei, aber es ist fehlgeschlagen. Was ist falsch?
Das funktioniert nicht:
<configuration>
<webResources>
<resource>
<directory>${basedir}/src/main/webapp/webscripts</directory>
<excludes>
<exclude>**/*.*</exclude>
</excludes>
</resource>
</webResources>
</configuration>
auch dies:
<configuration>
<webResources>
<resource>
<directory>${basedir}/src/main/webapp</directory>
<excludes>
<exclude>**/webscripts</exclude>
</excludes>
</resource>
</webResources>
</configuration>
Kann jemand helfen?
Lösung
Ihre beiden Lösungen nicht helfen würde, da sie eine zusätzliche Ressource hinzufügen würden, die deaktiviert wird, dann. Die Webapp Quellordner ist standardmäßig kopiert, ohne die Ressource-Mechanismus.
der Mechanismus einen Teil davon zu deaktivieren, ist durch die <warSourceExcludes>
Parameter, wie folgt aus:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1</version>
<configuration>
<warSourceExcludes>webscripts/**</warSourceExcludes>
</configuration>
</plugin>
Andere Tipps
warSourceExcludes scheint nicht nur umbenannt worden packagingExcludes .
warSourceExcludes : Die durch Kommata getrennte Liste von Tokens auszuschließen, wenn das Kopieren des Inhalts des warSourceDirectory
.packagingExcludes : Die durch Kommata getrennte Liste von Tokens aus dem Krieg vor dem Verpacken auszuschließen. Diese Option kann verwendet werden, zu implementieren, der dünne IST Anwendungsfall.
Es gibt einen großen Unterschied: Mit packagingExcludes , werden die Token vollständig aus dem letzten Krieg Datei ausgeschlossen. Mit warSourceExcludes , werden die Token einfach ignoriert, wenn der Krieg Verzeichnis in der WAR-Datei zu kopieren. Als Ergebnis, wenn die Token sind in der webappDirectory zum Beispiel, werden sie nicht ignoriert werden, wenn mit warSourceExcludes , wird aber bei der Verwendung von packagingExcludes .
Und ein Arbeits Syntax Beispiel:
<warSourceExcludes>**/${project.artifactId}/**</warSourceExcludes>
In der Version 2.1-alpha-1, wurde dies falsch benannt warSourceExcludes. Der richtige Parameter ist packagingExcludes
Beispiel für die Verwendung (ausgenommen WEB-INF / Statik / Ordner aus IST):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<warName>searchservice-web</warName>
<packagingExcludes>WEB-INF/statics/</packagingExcludes>
</configuration>
</plugin>
Inorder die Quelldateien zu entfernen, hat ich verwende die folgende Konfiguration in Maven
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<packagingExcludes>
eb-app/app/**,eb-app/node_modules/**,eb-app/public/**,eb-app/server/**,eb-app/tests/**,eb-app/tmp/**,eb-app/vendor/**,eb-app/*
</packagingExcludes>
</configuration>
</plugin>
Wir hatten ein Szenario, in dem ich hatte zwei Ordner ausschließen, die durch *scripts
angepasst werden konnte und sie waren in den Ordner Ressourcen. Die erste Verwirrung war, ob der Ausschluss Wert als src/main/resources/*scripts
liefern oder als WEB-INF/classes/*scripts
, das heißt vor oder gibt Kompilation Struktur.
war viel wichtiger /**
bietet die gesamten aus dem Krieg Datei ausgeschlossen zu bekommen. In meinem Fall *scripts/**
.
Hier ist die letzte Konfiguration, die bearbeitet:
<packagingExcludes>WEB-INF/classes/*scripts/**</packagingExcludes>