2012-04-05 3 views
12

Ich habe ein seltsames Problem mit Eclipse. Wenn ich eine .xls-Datei in den Pfad src/test/resources lege, wird sie von Eclipse in den Pfad target kopiert.Excel-Datei beschädigt, wenn von Quellcode in Eclipse-IDE kopiert

Die Datei im Zielpfad ist jedoch nicht mehr identisch. Ich kann es nicht mehr in MS Excel öffnen und wenn ich die beiden Dateien vergleiche, sehe ich einige binäre Unterschiede. Wie kann das passieren?

PS: Meine Eclipse-Umgebung wird mit Maven generiert.

+3

Haben Sie versucht, die Ressource von der Filterung auszuschließen? http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html –

Antwort

25

Dank der oben genannten Antworten wir haben herausgefunden, wie wir mit dem Problem umgehen können:

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

Danke für den Hinweis, ich kannte diese Optionen nicht :) –

11

Ich hatte das gleiche Problem, und es war Ursache von Maven Ressourcen Plugin, die gefiltert und verändert meine Excel-Dateien.

Um dies zu verhindern, dass so etwas wie dies (siehe Maven doc) geschehen, fügen:

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

UPDATE: Kopieren Sie Ressourcen, aber nicht filtrieren

<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

Ant-Build-Skript haben ähnliche Probleme, wenn Sie einen Filter anwenden, um die Datei zu lesen, wird davon ausgegangen, dass Sie einen Text verwenden Datei und die Dateien werden als Text kopiert und nicht als Bytes – Peter

+1

mit diesem Snippet die Xls-Datei wird nicht kopiert werden. Allerdings brauchen wir die Datei, aber nicht beschädigt – bertolami

+0

Sorry, ich habe die Antwort bearbeitet :) –

Verwandte Themen