如何使用maven pax加速部署:提供

时间:2013-11-25 13:57:18

标签: java maven intellij-idea pax pax-runner

我最近开始与大约40名其他开发人员合作开展一个项目。我们正在与Apache Felix一起使用OSGi。我们使用maven-pax-plugin使用Maven构建和部署。 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

在一些正在使用的电脑上,在Apache Felix启动之前需要大约30秒到1分钟,并且可以通过浏览器访问应用程序。然而,在我的同事的电脑上,这需要大约8-9分钟,而我的大约需要16分钟。

在这16分钟内,没有过多的CPU使用或网络流量。好像什么也没发生。

我已经尝试将日志级别更改为调试,这给了我很多关于pax-runner的信息,但是在“Listening for transport dt_socket ...”行之后,这是16分钟的沉默。在此期间,我可以将远程调试器(IntelliJ)连接到服务器,因此必须运行一些东西。

我的同事们似乎都不知道在这段时间里发生了什么,以及为什么我们两个人需要这么长时间,但对其他人来说却过得很快。谷歌没有给我任何线索,所以我想我会在这里问。

这是一个非常复杂的项目设置,所以我想一次编写小块并进行大量测试,但是等待16分钟来测试一个小的改变当然会降低生产力。

我希望有人可以帮助我。谢谢!

2 个答案:

答案 0 :(得分:0)

了解捆绑包是否都能很好地提升。通过访问Felix控制台并发出“ps”,“scr info”命令或放入Web控制台。

一旦所有捆绑包都被解析并激活,然后开始查看特定于应用程序的日志/事件,以确定它是否正常运行。

答案 1 :(得分:0)

我想说你已经将suspend选项设置为true启用了调试代理。在你的poms中寻找类似的东西:

      <provision>
        <param>--vmOptions="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"</param>
      </provision>

suspend=y更改为suspend=n

我知道这是一个老问题,但也许有人会有类似的问题。