我最近开始与大约 40 名其他开发人员一起开展一个项目。我们将 OSGi 与 Apache Felix 一起使用。我们使用 Maven 和 maven-pax-plugin 构建和部署。OSGi 和 pax 对我来说都很新,所以我不知道有关项目设置的任何细节。
要部署到我自己的机器上,我使用命令
mvn clean install
mvn pax:provision
pax:provision 命令启动 pax-runner,日志中的最后几行如下:
-> Provision bundle [...., at default start level, bundle will be started, bundle will be loaded from the cache]
-> Preparing framework [Felix 4.0.3]
-> Downloading bundles...
-> Using execution environment [NONE]
-> Runner has successfully finished his job!
Listening for transport dt_socket at address: 5005
在某些正在使用的电脑上,在这行之后大约需要 30 秒到 1 分钟,Apache Felix 才会启动并且可以通过浏览器访问应用程序。但是,在我同事的电脑上,这大约需要 8-9 分钟,而在我的电脑上大约需要 16 分钟。
在这 16 分钟内,没有过多的 CPU 使用或网络流量。好像什么事都没有发生。
我尝试将日志记录级别更改为调试,这为我提供了大量有关 pax-runner 的信息,但在“侦听传输 dt_socket ...”行之后,这是 16 分钟的沉默。在那段时间里,我可以将我的远程调试器 (IntelliJ) 连接到服务器,所以必须运行一些东西。
我的同事似乎都不知道这段时间会发生什么,以及为什么我们两个人花了这么长时间,而其他人却匆匆而过。谷歌也没有给我任何线索,所以我想我会在这里问。
这是一个相当复杂的项目设置,所以我想一次编写小块并进行大量测试,但是不得不等待 16 分钟来测试一个小改动当然会降低生产力。
我希望有人可以帮助我。谢谢!