Java 如何使用Maven构建工件的多个配置(例如战争等)?

Java 如何使用Maven构建工件的多个配置(例如战争等)?,java,internationalization,maven,maven-assembly-plugin,profiles,Java,Internationalization,Maven,Maven Assembly Plugin,Profiles,由于我们当前一些应用程序的模块化性质,我们需要了解如何设置Maven以生成相同工件(在我们的案例中是WAR文件)的多个配置,以及部署级别(开发、测试、生产)和本地化(gb、fr、es等)的组合?我们正在寻找类似于: artifact-gb-dev.war OR artifact-fr-test.war (etc., etc.) 我们已经了解到Maven“构建概要文件”,它似乎符合部署环境标准,以及Maven组装插件,它可能解决国家/国际化问题,但是否可以将两者结合起来(即,将法语资源文件集成到

由于我们当前一些应用程序的模块化性质,我们需要了解如何设置Maven以生成相同工件(在我们的案例中是WAR文件)的多个配置,以及部署级别(开发、测试、生产)和本地化(gb、fr、es等)的组合?我们正在寻找类似于:

artifact-gb-dev.war
OR
artifact-fr-test.war (etc., etc.)
我们已经了解到Maven“构建概要文件”,它似乎符合部署环境标准,以及Maven组装插件,它可能解决国家/国际化问题,但是否可以将两者结合起来(即,将法语资源文件集成到生产级构建中)?

我们当前目录结构的一个示例可能是:

..\gb
     \dev
     \test
     \production  
..\fr
     \dev
     \test
     \production  
..\es
     \dev
     \test
     \production
例如,构建可能需要一(一)个法国开发版本(fr/dev)或所有生产版本(gb fr es等/prod)

我们是Maven的新手,由于预配置的Maven原型及其依赖关系管理提供了快速提升功能,所以决定尝试使用它

谢谢


Richard

看看maven战争覆盖机制。它基本上允许您拥有一个通用pom,并在其上放置覆盖层(例如每个国家),以构建任意数量的战争

我过去曾用它为多个国家创建过一个网站(平台),每个国家的差异很小


请参阅:

我突然想到,我们可以通过使用绑定到特定概要文件的变量来改变maven程序集插件的目录解析,比如将部署级别引入config/resource的目录路径(例如/src/main/config/lang/${profile.level}/)。然后,汇编插件将通过多次执行来处理各种本地化要求……Albert,这是否要求您为每个国家/地区/依赖项维护单独的Maven项目/pom,或者覆盖层是否适用于一个项目(即定义新目录等)?这确实需要每个国家都有一个单独的模块。但是,您只需要覆盖与父模块不同的部分,这样它们就可以很小。我想这取决于您的用例是否适合您。刚刚看到这个关于战争覆盖的很好的解释,以及示例代码,希望这对您有所帮助: