最近发现很多朋友编译saiku3.14颇为困难,这次结合我对外公布的nexus仓库,再一次编写了此文章,即saiku3.14的编译步骤(必须结合我对外公布的nexus仓库)
<pluginRepositories>
<pluginRepository>
<id>Analytical Labs Plugin Repo</id>
<name>Analytical Labs Repo-releases</name>
<url>http://repo.meteorite.bi/repository/alabs-release-local/</url>
</pluginRepository>
</pluginRepositories>
修改为
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>central</name>
<url>http://nexus.liuyingguang.cn/repository/maven-public/</url>
</pluginRepository>
</pluginRepositories>
<repositories>
<repository>
<id>Analytical Labs Repo</id>
<name>Analytical Labs Repo-releases</name>
<url>http://repo.meteorite.bi/repository/alabs-release-local/</url>
</repository>
<repository>
<id>Analytical Labs snapshots</id>
<name>Analytical Labs Repo-releases</name>
<url>htt
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><configuration><skip>true</skip></configuration></plugin>
这段代码主要是修改构建过程中跳过junit测试,此项可以不改,使用命令行模式:mvn clean install -DskipTest但是到这里大部分人还是会执行失败,接着修改
由于saiku-ui构建的时候会执行一个文件“minify.patch”,在saiku-ui的pom文件中找到这行代码,注释掉,然后,然后还是先别急着构建的,还是有问题的,继续修改之前我构建的时候,顺手把plugin给删了,所以没构建,今天构建plugin的时候,发现无论如何有几个文件报错于是我放弃了,毕竟我现在还用不到这个plugin在saiku目录下的pom文件中,将<module>saiku-bi-platform-plugin-p5</module>一行注释掉,构建就可以了
如果你导入到eclipse中了,那么saiku项目右键-->Run As -->Maven install即可
如果没有导入到eclipse中,那么使用脚本构建
mvn clean install -DskipTest
build成功后,会在saiku-server的target目录中出现如下一些文件
转载请注明出处,也不枉我辛苦一番,谢谢
重点在选中文件,打开
文件都在,然后解压,启动即可
by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuyingguang.cn
博主首页(防止爬虫):http://blog.liuying
saiku的社区版本二次开发一直以来都是比较费劲的,最近saiku社区版在新版本中,引入了license的机制,于是我选了个3.8稳定版本(release-3.8),且不需要license的版本作为基础,将代码合并在一个项目中,以简化二次开发和源码研究。
作为一个普通maven项目,可以使用eclipse部署在tomcat中,debug等各种玩耍
创建新项目saiku3
在创建的项目中,分别创建resource目录:“src/main/saiku-web”,“src/main/saiku-service”,“src/main/saiku-olap-util”,并将saiku-core下的相应代码(java目录下和resources目录下的文件)分别copy到里面,
将saiku-webapp\src\main\webapp目录下的所有文件,覆盖到新建项目的webapp目录中
将编译过后的zip包中tomcat\webapps\下的ROOT目录中文件全部copy到新建项目的webapp目录中并修改/saiku3/src/main/webapp/js/saiku/Settings.js文件中的TOMCAT_WEBAPP值为“/saiku3”
将编译过后的zip包中saiku-server目录下的data和repository文件夹copy到项目的webapp目录中
修改saiku-beans.properties文件,修改所有“../../”的地方替换为“../webapps/saiku3/”;修改saiku-beans.properties文件,修改pluginpath为“../webapps/saiku3/js/saiku/plugins/”(20160614修改)
修改eclipse中tomcat的工作路径:参考如下文章 http://blog.csdn.net/gsying1474/article/details/51597995
修改 Database.java中的init方法,注释loadEarthquakes();方法的调用,以保证代码启动(此方法的代码中有部分导致启动错误,此方法为加载demo数据,所以不会影响功能使用)
整理POM文件中的jar包依赖(比较复杂)
如果不使用maven项目,也可以将打包好的项目中jar包全部copy到lib
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.saikuanalytics</groupId> <artifactId>saiku</artifactId> <packaging>pom</packaging> <version>3.7.4</version> <name>Saiku Module Project</name> <scm> <developerConnection> scm:git:git@github.com:OSBI/saiku.git </developerConnection> <tag>saiku-3.1-SNAPSHOT</tag> </scm> <modules> <module>saiku-core</module> <module>s |
由于二次开发需要重新整理pom文件,而pom文件中的依赖关系比较难整理,故将整理好的pom文件发出来,以供参考
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.firewarm</groupId> <artifactId>saiku3</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>saiku Maven Webapp</name> <url>http://maven.apache.org</url> <distributionManagement><!--add by liuyg --> <snapshotRepository> <id>snapshots-host</id> <url>http://nexus.firewarm.cn:8081/nexus/content/repositories/snapshots-host/</url> </snapshotRepository> </distributionManagement> <properties> <saiku.version>3.8-RC5</saiku.version> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> <top.dir>${project.basedir}</top.dir> <!-- <spring.version>4.0.1.RELEASE</spring.version> --> <spring.versi