Sonatype Nexus、Jenkins 和 Collabnet Subversion Edge 中的嵌入式应用服务器

发布于 2025-01-02 13:26:09 字数 613 浏览 1 评论 0原文

我需要设置一个构建开发环境,其中包括以下

  • Sonatype Nexus
  • Jenkins
  • Collabnet Subversion

我的应用程序在 GlassFish 应用程序服务器上运行。我注意到上述三个工具都带有嵌入式应用服务器。我已经下载了每一个并尝试了它们,但我对我现在有 4 个应用程序服务器正在运行这一事实有点警惕。

我注意到它们每个都还提供了 war 文件变体,可以将其拖放到现有的应用程序服务器上。我认为使用“Collabnet Subversion Edge”我可能没有任何其他选择,因为它没有战争安装选项。另外两个可以作为 war 文件下载。

在同一应用程序服务器上运行 Nexus 和 Jenkins 有哪些缺点?有什么缺点吗?我目前正在研究的一个问题是如何配置它。似乎只有在应用程序服务器分解/取消归档 war 文件后才能对其进行配置。

我也不愿意将这些战争文件放入现有的 Glassfish 实例中,因为它用于正式测试。我想也许我应该安装 Tomcat 并将其用于这些工具。您会建议我坚持使用嵌入式服务器还是只使用一台应用程序服务器并在必要时分配更多内存?这些工具中的任何一个与其嵌入式服务器配合得更好还是没有任何区别?

谢谢

I need to setup a build development environment that includes the following

  • Sonatype Nexus
  • Jenkins
  • Collabnet Subversion

My application runs on a GlassFish application server. I noticed that all the above three tools come with embedded application servers. I have downloaded each and have tried them out but i am a bit wary of the fact that i now have 4 application servers running.

I noticed that each of them also provide war file variant which can just be dropped on to an existing app server. I think with "Collabnet Subversion Edge" i probably dont have any other option as it doesnt come with a war installation option. The other two can be downloaded as war files.

What are the disadvantages of running both Nexus and Jenkins on the same application server. Are there any drawbacks? One i am investigating at the moment is how to configure it. It seems that it can only be configured once the war files has been exploded/unarchived by the application server.

I am also reluctant to drop these war files into the existing Glassfish instance as it is used for formal tests. I think maybe i should install Tomcat and use it for these tools. Would you recommend that i stick with the embedded servers or just use one application server and allocate more memory when necessary? Do any of these tools work better with their embedded servers or does it not make any difference?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

你是我的挚爱i 2025-01-09 13:26:09

所有 3 个工具都可以共享一个 Glassfish(或类似的应用程序服务器)实例。问题是您要负责设置合理的内存处理参数。如果一个应用程序导致 Java OutOfMemory 异常,则所有应用程序都可能受到影响:-(

如果您检查各个应用程序的启动器脚本,您会发现每个应用程序都为 Java 堆和永久生成设置设置了不同的默认值。

我的建议是保持每个应用程序隔离并使用嵌入式应用服务器。Jenkins 和 Nexus 都相当轻量(我不使用 Collabnet)。

All 3 tools can share a single Glassfish (or similar appserver) instance. Problem is you become responsible for setting sensible memory handling parameters. If one application causes a Java OutOfMemory exception, all applications are potentially affected :-(

If you check the launcher scripts for the various apps you'll discover each sets different defaults for Java heap and permgen settings.

My recommendation is to keep each app isolated and use the embedded appservers. Jenkins and Nexus are both fairly light-weight (I don't use Collabnet).

雄赳赳气昂昂 2025-01-09 13:26:09

Hudson/Jenkins 以及 Nexus 可以作为 War 文件在 Tomcat 或 Glassfish 中运行。然而,对于他们来说,首选和最佳支持的选项是使用捆绑的应用程序服务器。

Nexus 在内部使用 Jetty。 Hudson 3(Eclipse 的测试版)也是如此。 Old Hudson和Jenkins内部都使用winstone。这两个都是非常轻量级的容器,并行运行它们的开销应该可以忽略不计。

您将从这些服务器实际执行的操作(运行构建、提供工件等)中获得更多影响。

因此,为了让您的安装、升级以及运行时支持更轻松,我建议坚持使用嵌入式默认应用程序服务器。

Hudson/Jenkins as well as Nexus can run as war files in Tomcat or Glassfish. However for both of them the preferred and best supported option is to use the bundled app server.

Nexus uses Jetty internally. Hudson 3 (beta from Eclipse) does too. Old Hudson and Jenkins both use winstone internally. Both of these are VERY lightweight containers and the overhead of running them side by side should be negligible.

You will get a lot more impact from what these servers actually do (running builds, serving artifacts and so on).

So to make your life easier for install, upgrades as well as runtime support I would suggest to stick with the embedded default app servers.

嘴硬脾气大 2025-01-09 13:26:09

我没有使用过 Jenkins,但我见过 Nexus 和 Hudson 在单个 Tomcat 实例中作为单独的战争运行。对于nexus来说,war版本和独立版本之间的唯一区别是独立版本包含jetty,这样你就可以独立运行它......但这只是包装器。实际运行的 Nexus 是相同的。

我认为詹金斯也是如此。因此,当您可以在一台服务器中运行 4 个实例时,就没有理由运行 4 台服务器。应该可以正常工作,因为它们都有不同的网络上下文。

I haven't used Jenkins, but I have seen nexus and hudson run in a single tomcat instance running as separate wars. For nexus, the only difference between the war version and the standalone version is that the standalone includes jetty so that you can run it standalone...but that's just the wrapper. The actual nexus running is the same.

I'd assume the same is true for Jenkins as well. So there's no reason to run 4 servers when you could run 4 instances in one server. Should work just fine as they'll all have different web contexts.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文