坑点一:多余的源码
坑爹啊,你为何在源码里加入org.eclipse.birt.report.viewer包,而在发布的二进制jar包(viewservlets.jar)中却又删除此包及子包,让我浪费了整整二天的时间来排查问题。
坑点二:不一样的icu架包
从Maven仓库下载icu架包时,如下的配置检查了好多遍都没错,但就是无法编译,缺少相关类com.ibm.icu.text.MessageFormat:
<dependency>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>com.ibm.icu</artifactId>
<version>56.1.0.v201601250100</version>
</dependency>
后来与官方提供的架包比较,终于发现文件名有细微的差异,分别为“com.ibm.icu-56.1.0.v201601250100.jar”与“com.ibm.icu_56.1.0.v201601250100”,其中下划线的为正版。
看来坑birt的不仅有官方自己,还有Maven仓库的神助攻。
坑点三:难以信任的Maven仓库
从Maven仓库下载的大多数birt相关库都存在这样那样的问题,再例如:
<dependency>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>org.eclipse.birt.runtime</artifactId>
<version>4.6.0-20160607</version>
</dependency>
下载的架包与官方的架包差了10多m,并且还存在证书验证问题。
结论
有着漂亮图表与强大功能的birt没有流行起来,我想应该与他们官方自身挖的坑相关,一来社区版与商业版相差太大,导致社区孱弱之极,二来始终没有提供相关的MAVEN仓库,导致项目扩散程度太低。
针对这种情况,本博提供了以JAVA EE方式提供服务的mirana-birt项目,支持最新版本4.6,不仅有所有的Birt服务器端源码,还支持Servlet 3.1、Java 8等多项特性。