OFBIz gradle构建与运行踩坑

起源与碎碎念

这几天公司要重构ERP,让我负责去研究主流开源ERP系统。本来让我了解的是python的odoo,但是我对py太不熟练,项目代码的依赖本身也很脆弱,最后倒在了一个 Odoo LINE 1: SELECT * FROM ir_model WHERE state=‘manual‘ 错误上,卡了几天搞不定,回头反思感觉自己完全在浪费时间。分析一下:

  1. 为什么要看开源ERP——了解主流ERP设计思路,博采众长
  2. 为什么是odoo——python胶水语言的插件式设计能够实现热插拔自由增删模块;UI最好看的ERP;
  3. 为什么把我卡住了——对其技术栈太不熟悉+源码依赖过于脆弱+源码对系统环境要求太苛刻导致无法正常运行demo

 于是我亲自了解了一下有无具备类似优势的,Java版本的开源ERP系统,能够同样地帮助我了解主流ERP设计思路。最后的决定是Apache顶级项目之一Apache OFBiz,源码在github上,版本号我选择了 17.12 release

同样地,构建过程中也踩了不少坑...

1.Downloading https://services.gradle.org/distributions/gradle-3.2.1-bin.zip  timeout

下载gradle超时。这个问题我很久以前鼓捣安卓的时候就很奇怪,为什么Android Studio就永远下载不下来,我开网页下载就很轻松...

这种情况可以去gradle官网下载对应版本压缩包,然后放到对应的gradle目录。这样的话当检测到已经存在有下载好的gradle.zip后,程序就不会再到外网费劲去下载了。

2.gradlew cleanall loadall是干什么的

印象中从来没见过gradle还有这种指令丫?

还真没有,这两个都是OFBiz在build.gradle中自定义的脚本,大概是导依赖+build的作用。

3.resolve dependencies 'classpath'卡住

一看日志,jcenter,懂了。

jcenter貌似是gradle版的maven中心仓库之类,特别慢,特别容易超时或者宕掉。因此果断设置镜像。我win10系统的gradle路径在C:\Users\xxx\.gradle\文件夹下,在这里新建一个init.gradle然后粘贴进去如下镜像地址:

allprojects {
    repositories {
        maven {
            url "http://maven.aliyun.com/nexus/content/groups/public"
        }
    }
}

当然如果不喜欢阿里云的镜像也可以自行搜索清华,豆瓣等其他地方的镜像源。

设置之后,再次运行gradlew cleanall loadall,可以看到导入依赖时打印日志的网址从jcenter变成自己设置的了,当然速度也直接起飞。

4. javax.ws.rs依赖无法导入

报错信息大概这样:

Could not determine artifacts for javax.ws.rs:javax.ws.rs-api:2.1
Could not get resource 'https://nexus.server/content/groups/tenable-cloud/javax/ws/rs/javax.ws.rs-api/2.1/javax.ws.rs-api-2.1.$%7Bpackaging.type%7D'.

4.1解决方案

compile 'org.apache.tika:tika-parsers:1.20'

 改为:

    compile ('org.apache.tika:tika-parsers:1.20'){
        exclude group: 'javax.ws.rs'
        exclude module: 'javax.ws.rs-api'
    }
    compile 'javax.ws.rs:javax.ws.rs-api:2.1@jar'

4.2解决思路

首先查错误原因:转义字符被错误地带进了URL中(%7B与%7D分别是左右大括号),这样的话问题就很简单了,只需把用到javax.ws.rs依赖找出来,exclude掉,然后手动再把这个javax.ws.rs依赖用不含转义字符的方式加进来就好了。

然后定位问题语句:这里借鉴了二分法的思路(还好只有一处依赖用到了这个,不然那么多依赖项,可能真要一条一条排查了)每次注释掉一半依赖,然后执行gradlew cleanall loadall看是否打印这个错误日志,逐渐缩小范围直到定位出目标。最后定位到去掉

compile 'org.apache.tika:tika-parsers:1.20'

就不会报这个错误,于是把这一行改掉,问题解决。

5.Gradle Build时卡住

重启解决80%的问题,Ctrl+D终止掉,然后重新执行就...好了。

6.OFBiz的Banner都打印出来,但卡在Building 91%不动

不用管它,反正这时候项目已经成功运行了,而且访问OFBiz开发者文档中给的诸如https://localhost:8443/ordermgr/control/main等几个地址都没问题。

7.账号密码是啥

文档中有的,第三个网址也有写。默认账号admin,默认密码ofbiz

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值