2011-04-27 9 views
10

Estoy usando maven-resources-plugin para copiar algunos recursos de mi proyecto pero uno de mis recursos es un archivo binario. ¡La salida dice que es Using 'UTF-8' encoding to copy filtered resources que yo mi problema !!!cómo evitar la codificación UTF-8 para binario con maven-resources-plugin?

Aquí está la configuración de mi complemento.

 <plugin> 
      <artifactId>maven-resources-plugin</artifactId> 
      <version>2.5</version> 
      <executions> 
       <execution> 
        <id>copy-resources</id> 
        <!-- here the phase you need --> 
        <phase>validate</phase> 
        <goals> 
         <goal>copy-resources</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${project.build.directory}/autopublisher</outputDirectory> 
         <resources> 
          <resource> 
           <directory>src/autopublisher</directory> 
           <filtering>true</filtering> 
          </resource> 
         </resources> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

¿Puedo omitir la conversión UTF-8 para binarios?

Gracias.

+1

Maven no convierte ninguna codificación de caracteres. Simplemente tiene que saber que la codificación de caracteres debe aplicarse durante el filtrado. Los archivos binarios deben excluirse en cualquier momento. –

Respuesta

16

Bueno para solucionar mi problema he añadido esto a mi configuración maven binary filtering:

<nonFilteredFileExtensions>        
    <nonFilteredFileExtension>dcm</nonFilteredFileExtension> 
</nonFilteredFileExtensions> 
+0

mucho más simple :-) – artbristol

3

Configurar dos elementos <resource> separados, uno con <filtering>false</filtering> y el otro con <filtering>true</filtering>. Utilice los elementos <includes> y <excludes> de <resource> para excluir sus archivos binarios por extensión de uno de ellos.

El plugin de recursos es cada vez más inteligente para excluir, p. imágenes por defecto, así que asegúrese de usar la última versión.

+0

¡Bien, quiero que se copie el archivo! Pero no se convirtió a UTF-8. –

2

me encontré situación similar en un archivo binario (bien una mezcla de txt y datos binarios) fue inadvertidamente procesada por el plugin, por lo que es inutilizable al final.

Para solucionar esto, sólo tenía que realizar el filtrado de un poco más explícita en cuanto a qué tipos de archivo para filtrar y manteniendo todos los demás, sin tocar, ver a continuación:

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-resources-plugin</artifactId> 
      <version>2.6</version> 
      <executions> 
       <execution> 
        <id>filter-config-files</id> 
        <phase>prepare-package</phase> 
        <goals> 
         <goal>copy-resources</goal> 
        </goals> 
        <configuration><outputDirectory>${project.build.directory}/config-filtered</outputDirectory> 
         <resources> 
          <resource> 
           <directory>${project.build.directory}/nar/${project.name}-${project.version}-noarch</directory> 

           <!-- enabling filetering ONLY on these file types --> 
            <filtering>true</filtering> 
            <includes> 
             <include>**/*.xml</include> 
             <include>**/*.sh</include> 
            </includes> 
           </resource> 
           <resource> 
            <directory>${project.build.directory}/nar/${project.name}-${project.version}-noarch</directory> 
<!-- now excluding filtering on ALL OTHER file types but still including them in the archive --> 
              <filtering>false</filtering> 
              <includes> 
               <include>**/*</include> 
              </includes> 
             </resource> 
            </resources> 
           </configuration> 
          </execution> 
         </executions> 
        </plugin> 
1

Para un binario compilado que no tenía extensión (se inicia en el servidor de compilación RHEL para algunas pruebas de componentes), agregó una extensión de archivo para la versión de Linux que se pretendía ejecutar y utilizó la respuesta del código-gijoe anterior para asegurarse de que maven no la "filtro":

<nonFilteredFileExtensions>        
    <nonFilteredFileExtension>rhel</nonFilteredFileExtension> 
</nonFilteredFileExtensions> 
Cuestiones relacionadas