java - 如何使用maven pax :provision加速部署

标签 java maven intellij-idea pax pax-runner

我最近开始与大约 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

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

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

我曾尝试将日志记录级别更改为调试,这为我提供了大量有关 pax-runner 的信息,但在“监听传输 dt_socket...”行之后,是 16 分钟的沉默。在那段时间里,我可以将我的远程调试器 (IntelliJ) 连接到服务器,所以一定有东西在运行。

我的同事似乎都不知道这段时间发生了什么,也不知道为什么我们两个人花了这么长时间,但其他人却匆匆而过。 Google 也没有给我任何线索,所以我想我应该在这里问。

这是一个相当复杂的项目设置,所以我想一次编写小块程序并进行大量测试,但不得不等待 16 分钟来测试一个小的更改当然会降低工作效率。

我希望有人能帮我解决这个问题。谢谢!

最佳答案

看看捆绑是否都很好。通过访问 Felix 控制台并发出“ps”、“scr info”命令或放入 Webconsole。

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

关于java - 如何使用maven pax :provision加速部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20194944/

相关文章:

java - Android 应用程序未从市场运行,但推送 apk 有效

java - 将垃圾收集日志保存到 ${yarn.nodemanager.log-dirs}/application_${appid}/container_${contid} 中,用于 Hadoop Yarn 上的映射器和缩减器

java - 从 Maven 项目的类路径中排除某些依赖项

android - 无法执行 objective-c om.jayway.maven.plugins.android.generation2

java - 代码自动完成后禁用 Intellij IDEA 追加空间

java - 如何在条件中使用 onClick 函数或在函数中调用它?安卓

java - 如何在 Birt 中开发报表并在 ASP.NET 中使用?

java - 类文件 javax/transaction/SystemException 中非 native 或抽象方法中缺少代码属性

java - Maven Intellij IDEA 无法 gwt 编译类

git - 使用 IDEA 在 git 中 merge 分支时如何使用 "No Fast Forward"标志