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?

War es hilfreich?

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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top