Pregunta

este a excluir directorio completo ($ {} basedir / src / main / webapp / webscripts) de mi archivo WAR pero fracasó. Lo que está mal?

esto no funciona:

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

Esto también:

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

¿Alguien puede ayudarme?

¿Fue útil?

Solución

Tanto de sus soluciones no ayudaría, ya que añadirían un recurso adicional que se desactiva a continuación. La carpeta de origen webapp se copia por defecto, sin el mecanismo de recursos.

El mecanismo para desactivar una parte de que es a través de la <warSourceExcludes> parámetro, como este:

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

Otros consejos

warSourceExcludes no parece haber sido simplemente cambiado de nombre packagingExcludes .

warSourceExcludes : La coma separa la lista de fichas de excluir al copiar el contenido de la warSourceDirectory

.

packagingExcludes : La coma lista de tokens separó a excluir de la guerra antes de embalaje. Esta opción se puede utilizar para poner en práctica el flaco caso de uso WAR.

Hay una gran diferencia: Con packagingExcludes , las fichas están completamente excluidos del archivo de la guerra final. Con warSourceExcludes , las fichas son simplemente ignorados cuando se copia el directorio de la guerra en el archivo de la guerra. Como resultado, si los símbolos están presentes en el webappDirectory por ejemplo, no van a ser ignoradas cuando se utiliza warSourceExcludes pero será cuando se utiliza packagingExcludes .

Y un ejemplo de sintaxis de trabajo:

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

warSourceExcludes En la versión 2.1-alfa-1, esto fue incorrectamente con nombre. El parámetro de la derecha es packagingExcludes

Ejemplo de uso (excluye WEB-INF / estática / carpeta 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>

Estructura del proyecto

Inorder para eliminar los archivos de origen he utilizado el siguiente configuración en experta

 <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>

Si hubiera un escenario en el que tuve que excluir dos carpetas que podría ser igualadas por *scripts y estaban en la carpeta de recursos. La primera confusión era si para proporcionar el valor excluyen como src/main/resources/*scripts o como WEB-INF/classes/*scripts, es decir, pre o estructura de puestos de compilación.

¿Era mucho más importante proporcionar /** para obtener todo el directorio está excluido del archivo de la guerra. En mi caso, *scripts/**.

Esta es la configuración final que funcionó:

    <packagingExcludes>WEB-INF/classes/*scripts/**</packagingExcludes>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top