2012-04-05 3 views
12

Ho un problema strano con eclipse. Quando inserisco un file .xls nel percorso src/test/resources, questo viene copiato da eclissi sul percorso target.File Excel corrotto quando copiato da src a destinazione in Eclipse IDE

Tuttavia, il file nel percorso di destinazione non è più lo stesso. Non riesco più ad aprirlo in MS Excel e quando confronto i due file, vedo alcune differenze binarie. Come può accadere?

PS: il mio ambiente eclissi viene generato con Maven.

+3

Hai provato a escludere la risorsa dal filtro? http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html –

risposta

25

Grazie alle risposte di cui sopra abbiamo scoperto come affrontare il problema:

<plugin> 
     <artifactId>maven-resources-plugin</artifactId> 
     <version>2.5</version> 
     <configuration> 
     <encoding>UTF-8</encoding> 
     <nonFilteredFileExtensions> 
      <nonFilteredFileExtension>xls</nonFilteredFileExtension> 
     </nonFilteredFileExtensions> 
     </configuration> 
    </plugin> 
+0

Grazie per il suggerimento, non conoscevo queste opzioni :) –

11

Ho avuto lo stesso problema ed è stato causato dal plugin delle risorse Maven che ha filtrato e modificato i miei file Excel.

Per evitare che questo accada, aggiungere qualcosa di simile (vedi Maven doc): AGGIORNAMENTO

<build>    
     <resources> 
      <resource> 
       <filtering>true</filtering> 
       <directory>src/test/resources</directory> 
       <excludes> 
        <exclude>**/*.xls</exclude> 
       </excludes> 
     </resource> 
... 

: Copia di risorse, ma Non filtrare

<resources> 
     <resource> 
     <directory>src/test/resources</directory> 
     <filtering>true</filtering> 
     <excludes> 
      <exclude>**/*.xls</exclude> 
     </excludes> 
     </resource> 
     <resource> 
     <directory>src/test/resources</directory> 
     <filtering>false</filtering> 
     <includes> 
      <include>**/*.xls</include> 
     </includes> 
     </resource> 
     ... 
    </resources> 
+0

Gli script di formica hanno problemi simili, quando si applica un filtro deve leggere il file, questo presuppone che si stia utilizzando un testo file e i file saranno copiati come testo e non come byte con conseguente corruzione – Peter

+1

con questo frammento di codice xls non verrà copiato. Tuttavia, abbiamo bisogno del file, ma non danneggiato – bertolami

+0

Spiacente, ho modificato la risposta :) –