0

这个想法是将 jboss AS7 嵌入到我的项目中并将其添加到版本控制中。另外要检查使用 mvn jboss:devserver 启动服务器的能力(类似于我们运行 mvn appengine:devserver 的方式)那么编写我自己的 archtype 有意义吗?

对我的客户来说,这减少了很多复杂性,因此我们可以创建自己的 jboss 配置来与客户的 C# 开发人员一起工作,他们将从事 Java 项目开发。发现设置本地机器以在本地运行更改更容易。使用上面提到的类似命令。(mvn jboss:devserver)我想知道是否有人有过这个想法?

4

2 回答 2

2

我可能会考虑使用Puppet之类的东西,而不是检查所有 JBoss。

Puppet 使用自定义声明性语言来定义系统配置。您的 puppet 脚本可能会执行以下操作:

  • 从公共服务器下载 JBoss,并将其解压缩到您想要的位置
  • 将版本控制存储库中的自定义配置文件复制到 JBoss
  • 将您的应用程序复制到 JBoss

Puppet 比我刚才描述的简单场景强大得多,但这个场景只是一个开始。

使用此解决方案,您最终只会签入您的 puppet 脚本和您可能需要的任何自定义 JBoss 配置文件。另外,我相信它会让你的 JBoss 升级路径更加简单,因为你只需要在你的 puppet 脚本中更改 JBoss 的版本,然后重新运行 puppet。

于 2013-11-13T14:35:16.793 回答
1

我认为处理这种情况的理想方法是通过包装。如果您的客户端部署在某种 unix 服务器上(我在其中包括 Linux),那么他们已经在使用包管理器来管理其服务器上的系统软件。包管理器能够安装、删除、升级软件,并且对您来说至关重要的是,可以安装某些包所依赖的其他包。

因此,您可以打包 JBoss,以便包管理器可以安装它,然后打包您的应用程序,指定对 JBoss 的依赖关系。当客户端安装您的应用程序包时,JBoss 将自动安装。

但是,此计划仅在您的客户设置了一定程度的基础架构时才有效。他们需要使用带有包管理器的系统。他们需要有一种管理包安装的方法(配置管理工具,如 Puppet、Chef、Ansible 或供应商专有的东西是理想的选择)。他们需要能够在他们的环境中分发自定义包。他们需要有一种方式来接受您的自定义包,或者接受包构建脚本然后自己构建包。

在任何规模的服务器环境中,系统管理员无论如何都应该并且可能会拥有所有这些基础设施,因为它是管理一组服务器的基础。但是,如果您的客户没有它,那么设置起来可能会很费力。

也就是说,这种方法的绝对最小版本是让您通过电子邮件或 SFTP 或其他方式向他们发送应用程序和 JBoss 的包文件,然后让系统管理员手动安装它们(例如使用yum localinstall)。这并不比让他们手动安装 JBoss 好多少,但这是朝着正确方向迈出的一步。

于 2013-11-13T15:06:05.570 回答