使用 Maven 为 dev 和 prod 提供不同的配置文件

发布于 2024-12-01 20:47:17 字数 122 浏览 1 评论 0原文

我必须在开发和生产中使用不同的 log4j.xml 和属性文件。我正在使用 Maven 进行构建和打包。有没有办法让maven通过POM中的可配置maven属性或传递运行时变量来选择dev或prod?

谢谢, 阿比

I have to different log4j.xml and property files which are to be used in Dev and Production. I am using maven for building and packaging. Is there a way I can let maven choose dev or prod by a configurable maven property in POM or passing a run time variable?

Thanks,
Abi

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

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

发布评论

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

评论(3

压抑⊿情绪 2024-12-08 20:47:17

基于 Maven 中的配置文件的想法并不是最好的,因为这会迫使您运行构建几次,这意味着如果您有两个环境,则必须运行构建两次,如果您有更多环境,请考虑一下这一点。
最好的解决方案是使用 Maven-Assembly-Plugin 创建一个一步中针对不同环境的工件集,这些工件将由分类器区分。我在此处制作了一个完整的示例。

The idea based on profiles in Maven is not the best, cause that would force you to run your build a couple of times which means if you have two environments you have to run your build twice if you have more just think about this.
The best solution is to work with the Maven-Assembly-Plugin to create a set of artifacts for the different environments in a single step which will be distinct by the classifier. I have made a complete example here.

南风几经秋 2024-12-08 20:47:17

是的,使用 Maven 配置文件

配置文件是使用 POM 本身可用元素的子集(加上一个额外部分)指定的,并以多种方式触发。它们在构建时修改 POM,并且旨在用于补充集,以便为一组目标环境提供等效但不同的参数(例如,提供开发、测试和部署中应用程序服务器根的路径)。生产环境)。

Yes, use Maven profiles.

Profiles are specified using a subset of the elements available in the POM itself (plus one extra section), and are triggered in any of a variety of ways. They modify the POM at build time, and are meant to be used in complementary sets to give equivalent-but-different parameters for a set of target environments (providing, for example, the path of the appserver root in the development, testing, and production environments).

墨小墨 2024-12-08 20:47:17

作为配置文件的替代方案,它允许您在构建过程中选择“dev”或“prod”,您可以考虑使用maven-assemble-plugin 这样你就可以构建“dev”和“prod” “每次构建时都会装配。

As an alternative to profiles, which allows you to choose either "dev" or "prod" during your build, you might consider using the maven-assembly-plugin so that you can build both "dev" and "prod" assemblies every time you build.

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