Question

J'ai essayé cette exclure le répertoire entier ($ {basedir} / src / main / webapp / webscripts) de mon fichier WAR, mais il a échoué. Quel est le problème?

cela ne fonctionne pas:

<configuration>
   <webResources>
      <resource>
       <directory>${basedir}/src/main/webapp/webscripts</directory>
       <excludes>
        <exclude>**/*.*</exclude>
       </excludes>
      </resource>
   </webResources>
</configuration>

cela aussi:

<configuration>
   <webResources>
      <resource>
       <directory>${basedir}/src/main/webapp</directory>
       <excludes>
        <exclude>**/webscripts</exclude>
       </excludes>
      </resource>
   </webResources>
</configuration>

peut-elle aider quelqu'un?

Était-ce utile?

La solution

Les deux de vos solutions ne serait pas l'aide, car ils ajouteraient une ressource supplémentaire qui est alors désactivée. Le dossier source webapp est copié par défaut, sans mécanisme de ressources.

Le mécanisme pour désactiver une partie qui est à travers le <warSourceExcludes> paramètre , comme ceci:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1</version>
    <configuration>
        <warSourceExcludes>webscripts/**</warSourceExcludes>
    </configuration>
</plugin>

Autres conseils

warSourceExcludes ne semble pas avoir été juste renommé packagingExcludes .

  

warSourceExcludes : La virgule sépare la liste de jetons d'exclure lors de la copie du contenu de la warSourceDirectory

.      

packagingExcludes : La liste séparée par des virgules des jetons pour exclure de la guerre avant l'emballage. Cette option peut être utilisée pour mettre en œuvre   le cas maigre d'utilisation WAR.

Il y a une grande différence: Avec packagingExcludes , les jetons sont complètement exclus du fichier de guerre final. warSourceExcludes , les jetons sont ignorés lors de la copie du répertoire de guerre dans le fichier de guerre. Par conséquent, si les jetons sont présents dans le webappDirectory par exemple, ils ne seront pas ignorés lors de l'utilisation warSourceExcludes mais sera lorsque vous utilisez packagingExcludes .

Et un exemple de syntaxe de travail:

<warSourceExcludes>**/${project.artifactId}/**</warSourceExcludes>

Dans la version 2.1 alpha-1, cela a été mal nommé warSourceExcludes. Le paramètre est droit packagingExcludes

Exemple d'utilisation (à l'exclusion WEB-INF / statique / dossier de WAR):

<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 pour supprimer les fichiers source que j'ai utilisé la configuration ci-dessous dans 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>

Had un scénario où je devais exclure deux dossiers qui pourraient être abondés par *scripts et ils étaient dans le dossier des ressources. La première était de savoir si la confusion pour fournir la valeur d'exclusion en tant que src/main/resources/*scripts ou WEB-INF/classes/*scripts, à savoir l'avance ou de la structure après la compilation.

était très important de fournir /** pour obtenir le répertoire entier étant exclu du dossier de la guerre. Dans mon cas, *scripts/**.

Voici la configuration finale qui a travaillé:

    <packagingExcludes>WEB-INF/classes/*scripts/**</packagingExcludes>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top