很多java应用程序都是用maven构建的。maven有Profiles的概念,为不同的环境构建发布包真的很方便。例如,使用不同path / jndiname / security rule / properties files的dev/test/prod ...我想我不需要在这里列出代码来解释它。
Spring是一个非常好的和流行的java开发框架,因为spring3也支持配置文件的概念。
现在问题来了,对于不同的环境目的发布,哪一个更好?现在我更喜欢maven profile。因为spring必须复制每个概要文件中的每个bean定义。它需要一个初始化器/属性来让spring知道哪个配置文件应该被激活。
但我觉得spring profile比maven profile更灵活。
你认为如何?请给我一些建议。谢谢。
发布于 2012-08-09 00:51:48
SpringFramework概要文件将提供构建时解决方案,而Maven概要文件将提供运行时替代方案。我认为这是人们可能会问自己的第一个问题:如果他想要一个可以在不同环境中部署的单个包,或者他是否希望构建工具根据目标环境提供不同的包。
要记住的一件事是,如果您将不同的包部署到不同的服务器中,可能会出现许多问题。例如,在我的工作场所中,如果我正在部署一个包来纠正以前在生产环境中发生的错误,公司的策略会规定,唯一可接受的情况是我在QA和生产服务器中有相同的解决方案包。
发布于 2012-08-09 00:47:07
如果你需要不同的工件,那就用maven吧。如果它只是一个真实的配置,可以在构建构件之后进行配置,那么用户Spring配置文件。
发布于 2012-08-09 01:07:44
正如在其他回复中提到的:这完全取决于您的工作方式:)
在过去几年中,我们使用maven和现在的spring 3.1配置文件得出的结论是:
PropertyPlaceholderConfigurer来设置应用程序(或一些JNDI资源,具体取决于客户)。这允许只运行一次maven发布。PropertyPlaceholderConfigurer读取的属性中的弹簧配置文件。关于如何做到这一点,有一些很好的教程:
我们通常只使用maven配置文件将构建分为开发人员和持续集成构建的不同部分。我们实际上不再将它们用于.war文件的目标环境。我们仍然使用maven配置文件进行自动化数据库部署,这与web应用程序(数据量、测试数据等)相比有更大的不同,但这些配置文件不是以zip的形式提供的。
当然还有其他的路要走。我不认为这是故事的结束:)
但这可能会有所帮助。
https://stackoverflow.com/questions/11869064
复制相似问题