如何通过maven修复损坏的xls文件?
问题描述:
我有JETT由生成报告的方法:如何通过maven修复损坏的xls文件?
try {
InputStream inPath = ProdutoManagedBean.class.getResourceAsStream("/template.xls");
ExcelTransformer transformer = new ExcelTransformer();
transformer.transform(inPath, beans);
} catch (IOException e) {
e.printStackTrace();
} catch (InvalidFormatException e) {
e.printStackTrace();
}
我具有transformer.transfom一个InvalidFormatException(...):
22:44:37,803 ERROR [stderr] (default task-28) org.apache.poi.openxml4j.exceptions.InvalidFormatException: Your InputStream was neither an OLE2 stream, nor an OOXML stream
我调查了行家导致此数据腐败,但我把过滤器工件放在pom.xml中,它仍然继续损坏:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${compiler-plugin.version}</version>
<configuration>
<encoding>UTF-8</encoding>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.5</version>
<inherited>true</inherited>
<configuration>
<encoding>UTF-8</encoding>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
<plugin>
答
我能解决;我把这个神器在具有网络基础设施组件项目的pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<inherited>true</inherited>
<configuration>
<encoding>UTF-8</encoding>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</plugin>
</plugins>
</build>
这可能造成项目的技术架构的特异性的问题。
maven-jar-plugin的配置是无用的,因为这些配置元素在[maven-jar-plugin]中不存在(https://maven.apache.org/plugins/maven-jar-plugin/jar- mojo.html)。你是否检查过原始文件是否正确? – khmarbaise
好像这个maven用户让你陷入困境。所以一些明确的maven仇敌的提示:-):你应该阅读关于在maven中提供资源的最佳实践方法。不,这不会把它们放在课堂旁边的罐子里。你的“nonFilteredFileExtension”只能在maven-resources-plugin中使用,推荐使用。 maven-compiler-plugin仅提供“排除”。 –