Java POI 3.8与dbunit 2.4.9不兼容
我们在应用程序中使用POI 3.8。我们的项目使用dbunit从.xls文件加载数据集,显然dbunit与POI 3.8不兼容。我得到以下例外情况Java POI 3.8与dbunit 2.4.9不兼容,java,maven,compilation,apache-poi,dbunit,Java,Maven,Compilation,Apache Poi,Dbunit,我们在应用程序中使用POI 3.8。我们的项目使用dbunit从.xls文件加载数据集,显然dbunit与POI 3.8不兼容。我得到以下例外情况 java.lang.NoSuchMethodError: org.apache.poi.hssf.usermodel.HSSFDateUtil.isCellDateFormatted(Lorg/apache/poi/hssf/usermodel/HSSFCell;)Z dbunit似乎需要POI 3.2。但是,我不能降级我的POI版本。有没有办法
java.lang.NoSuchMethodError: org.apache.poi.hssf.usermodel.HSSFDateUtil.isCellDateFormatted(Lorg/apache/poi/hssf/usermodel/HSSFCell;)Z
dbunit似乎需要POI 3.2。但是,我不能降级我的POI版本。有没有办法解决这个问题。在一篇帖子中,我读到了关于下载dbunit源代码并根据poi 3.8重新编译它的内容。如何进行重新编译?在的dbunit bugtracker上对此进行了一些讨论,不幸的是,那里还没有更新,因此dbunit本身似乎还不支持此功能 通过以下步骤,我能够针对较新的Apache POI版本重新编译dbunit:
svn公司http://dbunit.svn.sourceforge.net/svnroot/dbunit/tags/dbunit-2.4.9
3.9
,更新版本中删除了-FINAL
mvn包
mvn-DskipTests=true包跳过它们
生成的二进制文件位于
target/dbunit-2.4.9.jar下
我在这里检查了pom文件
ApachePOI的版本仍然是3.2。不幸的是,这个版本已经有5年的历史了,并且它的功能少于3.9,例如格式化程序和一些类(如Row)的不同包
根据centic的建议,我已经克隆了git repo,现在dbunit的版本是2.4.10-SNAPSHOT,我已经更改了apache poi版本,并使用-Dmaven.test.skip=true选项编译和安装
默认情况下,oracle的配置文件被激活,这必须具有oracle jdbc驱动程序,可以按照上述建议在本地repo中禁用或安装该驱动程序
所有的测试都像以前一样顺利。他们网站上的[DBUnit building guide]()没有涵盖它吗?似乎到源代码的链接不再起作用了。新的是或通过SVN:
git克隆http://git.code.sf.net/p/dbunit/code.git