ovirt-engine本地开发(二): 编译


上一篇我们已经在本地搭建起了ovirt engine的本地服务,现在我们开始介绍开发相关的一些内容。

使用IDE

我们选择java语言最常见的eclipse作为我们的IDE,将我们之前编译好的ovirt-git目录下面的代码作为 Existing Maven Projects导入就可以了,一定要在编译完后再导入。导入完成后eclipse会有一些错误,我最终也没能完全解决掉这些错误,如果你完全没错误的导入了,欢迎在评论区交流😄。
参考:https://www.ovirt.org/develop/developer-guide/engine/building/ide.html

编译与更新

在开发之前,我们先介绍一些可能有用的编译参数。
在上一篇中,我们在第一次编译时没有使用任何额外参数,但是那种编译会花费很长时间,并且如果你的开发环境内存比较少的话,还有可能因为内存不足而导致编译失败。再次强调一次,编译命令要在源码目录($HOME/ovirt-git/ovirt-engine/)中使用非root用户执行。

当我们修改了源码之后,如果没有修改数据库schema, 没有必要重新执行setup,只要我们重新执行一次 make install-dev … 编译,就会重新生成新文件覆盖原来的旧文件,然后我们将本地服务重启就可以了(使用 ctrl+c 停止服务)。
如果修改了数据库schema,那么我们 make install-dev …之后,还需要再执行一遍 engine-setup。
如果我们出现了一些难以解决的问题,最简单的方式就是将 PREFIX 指定的目录删掉,重新 编译 和 setup。
如果只是想清空本地环境,${PREFIX}/bin/engine-cleanup 是个不错的选择。

基础编译命令

make clean install-dev PREFIX=”${PREFIX}”
PREFIX指定了我们将源码编译的结果输出到哪里,也就是本地ovirt-engine服务所在的目录($HOME/ovirt-engine/)

BUILD_GWT

是否编译 GWT,默认是1,如果我们没有修改前端UI代码,可以不编译GWT,将其设为 0。

BUILD_UT

是否跳过单元测试,默认是1。 跳过单元测试能明显减少编译时间。

DEV_EXTRA_BUILD_FLAGS

指定编译的额外参数,默认为空。比较有用的一个用法是:DEV_EXTRA_BUILD_FLAGS=”-Dgwt.compiler.localWorkers=1″
执行并行编译GWT的线程数,如果你的内存比较少,可以像上面那样设为1,就可以避免因为内存不足而编译失败。 当然如果内存充足,没必要修改。

DEV_EXTRA_BUILD_FLAGS_GWT_DEFAULTS

指定编译GWT的额外参数。比较有用的用法:
DEV_EXTRA_BUILD_FLAGS_GWT_DEFAULTS=”-Dgwt.userAgent=gecko1_8,safari”
指定gwt编译的浏览器支持范围,默认是支持所有,具体支持类型可以参考 frontend/webadmin/modules/pom.xml。

DEV_EXTRA_BUILD_FLAGS_GWT_DEFAULTS=”-Dgwt.locale=en_US,ja_JP”
指定gwt编译的国际化支持,默认支持所有,具体支持类型同样参考 frontend/webadmin/modules/pom.xml。

DEV_EXTRA_BUILD_FLAGS_GWT_DEFAULTS=”-Dgwt.style=pretty”
DEV_EXTRA_BUILD_FLAGS_GWT_DEFAULTS=”-Dgwt.cssResourceStyle=pretty”
这两个参数可以在开发环境中避免GWT编译出的JavaScript代码被 uglify。

仅仅编译某一个模块

EXTRA_BUILD_FLAGS=”-pl org.ovirt.engine.api:restapi-apidoc”
使用上面这个参数可以仅仅编译 restapi-doc这一个模块。 我试了一下这个,对于前端UI代码不太好使。

我们可以举一个具体的例子
下面这个命令满足 1. 编译GWT 2. 浏览器仅仅支持chrome和safari 3.语言仅仅支持 zh_CN和 en_US 4. 跳过单元测试
make install-dev PREFIX=”$HOME/ovirt-engine” BUILD_UT=”0″ DEV_EXTRA_BUILD_FLAGS_GWT_DEFAULTS=”-Dgwt.userAgent=safari -Dgwt.locale=en_US,zh_CN”

参考: https://github.com/oVirt/ovirt-engine/blob/master/README.adoc

0 条回复 A 作者 M 管理员 E
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论