Domanda

questo per escludere directory intero ($ {} basedir / src / main / webapp / webscripts) dal mio file WAR, ma non è riuscito. Cosa c'è di sbagliato?

questo non funziona:

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

anche questo:

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

Qualcuno può aiutarmi?

È stato utile?

Soluzione

Entrambe le tue soluzioni non aiuterebbe, come sarebbero aggiungere una risorsa aggiuntiva che viene poi disattivata. La cartella di origine webapp viene copiato per impostazione predefinita, senza il meccanismo delle risorse.

Il meccanismo per disattivare una parte che è attraverso il <warSourceExcludes> parametro, in questo modo:

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

Altri suggerimenti

warSourceExcludes non sembra aver appena stato rinominato packagingExcludes .

  

warSourceExcludes : La virgola elenco di token separati da escludere quando si copia il contenuto del warSourceDirectory

.      

packagingExcludes : La virgola elenco di token separati da escludere dal WAR prima del confezionamento. Questa opzione può essere utilizzato per implementare   il magro caso d'uso WAR.

C'è una grande differenza: con packagingExcludes , i gettoni sono completamente esclusi dal file di guerra finale. Con warSourceExcludes , i gettoni vengono semplicemente ignorati quando si copia nella directory di guerra nel file di guerra. Di conseguenza, se i gettoni sono presenti nella webappDirectory , per esempio, non saranno ignorati quando si utilizza warSourceExcludes , ma sarà quando si utilizza packagingExcludes .

E un esempio di sintassi di lavoro:

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

warSourceExcludes Nella versione 2.1-alfa-1, questo è stato nominato in modo non corretto. Il parametro di destra è packagingExcludes

Esempio di utilizzo (esclude WEB-INF / statica / cartella da 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>

Progetto Struttura

Inorder per rimuovere i file di origine ho usato il seguito di configurazione 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>

Ha avuto uno scenario in cui ho dovuto escludere le due cartelle che potrebbero essere compensate da *scripts ed erano nella cartella risorse. Il primo confusione era se fornire il valore escludere come src/main/resources/*scripts o come WEB-INF/classes/*scripts, cioè pre o struttura posta compilazione.

è stato molto importante fornire /** per ottenere l'intera directory viene esclusa dal file di guerra. Nel mio caso, *scripts/**.

Questa è la configurazione finale, che ha funzionato:

    <packagingExcludes>WEB-INF/classes/*scripts/**</packagingExcludes>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top