Java 我应该为j2ee应用服务器配置文件实施源代码控制吗?

Java 我应该为j2ee应用服务器配置文件实施源代码控制吗?,java,version-control,jakarta-ee,configuration-management,Java,Version Control,Jakarta Ee,Configuration Management,对于典型的J2EEWeb应用程序,数据源连接设置存储为应用程序服务器配置的一部分 是否有办法控制这些配置详细信息的版本?我希望对数据源和其他应用程序服务器配置更改有更多的控制 执行此操作的标准做法是什么?我们的(Spring)应用程序在Spring配置文件中有一个硬编码的jndi名称。这样,可以将同一个ear部署到开发人员、qa和prod环境中,而不必担心数据库连接的细节 应用程序服务器管理员确保根据该jndi名称注册数据源,并在每个环境中提供适当的连接详细信息。但这如何让我管理应用程序服务器中

对于典型的J2EEWeb应用程序,数据源连接设置存储为应用程序服务器配置的一部分

是否有办法控制这些配置详细信息的版本?我希望对数据源和其他应用程序服务器配置更改有更多的控制

执行此操作的标准做法是什么?

我们的(Spring)应用程序在Spring配置文件中有一个硬编码的jndi名称。这样,可以将同一个ear部署到开发人员、qa和prod环境中,而不必担心数据库连接的细节


应用程序服务器管理员确保根据该jndi名称注册数据源,并在每个环境中提供适当的连接详细信息。

但这如何让我管理应用程序服务器中数据源配置的更改。下面是一个场景:

  • DBA更改数据库服务器的连接密码

  • WebSphere/Weblogic administrator通过管理员控制台对服务器配置进行相应更改

  • 上述变更不受版本控制,因此没有明确的方法了解此类变更的历史


    问题不在于如何配置应用程序,而在于如何控制配置更改的版本。对于简单的项目来说,这听起来似乎有些过分,但对于某些项目来说,控制这样的更改确实成了一个问题

    在使用WebSphere时,我们发现最好的方法是编写部署脚本,并将脚本置于版本控制下,以及每个目标环境的响应文件。

    当您问自己“X是否应处于版本控制中”时,默认答案是“是”

    要获得更精确的答案,请扪心自问:文件是由个人创建的(如源文件或文档),还是由其他程序生成的(如对象文件或分发版PDF)


    由人工创建和/或维护的文件应处于配置控制之下。

    通过版本控制跟踪应用程序服务器的配置更改是一件好事。但是,这确实意味着所有更改都是通过脚本完成的,而不是通过管理web界面。我推荐

    作为一篇很好的关于这个主题的背景信息文章


    更新:最近,这里发布了第2部分:

    Websphere可能很棘手,因为目录结构是一堆文件-通常会出现重复文件,很难确定需要备份/恢复的神奇文件是什么。如何进行这项工作的问题不应减损这样做的必要性这肯定是肯定的。

    我们总是使用版本控制来设置应用程序服务器。它是一个名为WLST(weblogic脚本工具)的工具,是weblogic服务器发行版的一部分。域配置存储在Jython脚本中,该脚本可以通过命令行轻松执行,因此与我们的构建工具maven集成

    创建一个预配置的运行weblogic域只需要执行一个maven目标。所有那些令人讨厌的错误配置的jdbc连接或错误的jms目标参数问题都消失了。在给定时间,您将始终拥有与源代码匹配的appserver配置。您将永远不需要记住您正在处理的项目的此特定版本必须应用哪个应用程序服务器设置

    我真的推荐这个


    我还想知道,是否有其他应用服务器可用的类似解决方案。据我所知,有一种方法可以通过蚂蚁捕捉玻璃鱼。JBoss如何实现这一点?

    通过“响应”文件-您是指日志文件吗如果是这样,您建议设置脚本以自动更新工作区(受版本控制),还是手动签入日志(部署后)?提前感谢critical.skillOC4J有一个ant任务,允许您执行某些操作,例如创建数据源。