Maven 中的元配置文件

Posted

技术标签:

【中文标题】Maven 中的元配置文件【英文标题】:Meta-profiles in Maven 【发布时间】:2011-01-18 19:36:59 【问题描述】:

我正在寻找一种方法来创建仅在 Maven 中激活子配置文件的元配置文件。让我们举一个非常具体的例子。我有以下个人资料:

“服务器-jboss” “服务器-tomcat” “数据库-hsql” “数据库-oracle”

要构建项目,您必须为服务器选择一个配置文件,为数据库选择一个配置文件。我想创建两个“元配置文件”:

"dev" => "server-tomcat","database-hsql" "prod" => "server-jboss","database-oracle"

第一个想法是通过属性激活子配置文件:

<profile>
   <id>database-oracle</id>
   <activation>
     <property>
       <name>prod</name>
     </property>
   </activation>
</profile>

但是这样,我不能在元配置文件之间共享子配置文件。例如,我希望我的配置文件“database-oracle”同时被“pre-prod”和“prod”元配置文件激活。

注意:我的子配置文件只包含属性。它们用于过滤资源和子 pom。这就是为什么我认为可以针对这种特殊情况提供解决方案。

对我来说理想的情况是将它们外部化到外部属性文件中,但一次一个问题;)

【问题讨论】:

其实这个问题听上去真像是***.com/questions/2246033/…的骗子。如果您认为这是一个不同的问题,请确认。 是的,我浏览了这些问题,但我认为我的情况可能有一些技巧。我的子配置文件只是我想要聚合的一组属性。可能是我的问题的标题有点雄心勃勃;) 【参考方案1】:

无法从另一个配置文件激活配置文件(这已在此previous question 中讨论过)。您的第一个想法是使用相同的属性来激活不同的配置文件,这是您可以实现的最佳方案,但确实存在局限性。

【讨论】:

在这种情况下,是否有一个技巧可以使配置文件由多个属性激活?我看到你可以使用 jdk 版本的范围,例如,可能有一些隐藏的语法,比如 pord,pre-prod ?【参考方案2】:

您是否尝试过使用 maven-properties-plugin 的解决方案?讨论了一些可能性in this question 和here。

【讨论】:

是的,我试过了,它看起来是个不错的解决方案。不幸的是,我无法让它正常工作:我在 POM 中加载了属性文件,它对于资源过滤效果很好,但不适用于直接在 POM 中使用它们。

以上是关于Maven 中的元配置文件的主要内容,如果未能解决你的问题,请参考以下文章

4000元配置: 机箱:4核4G 1G最好128位显存 1T盘; 21.5显示器, 键鼠; AMD和INTEL两种方案。

怎么打开maven中设置的jar包路径文件夹

通过 Maven 在 SpringBoot 中配置活动配置文件

在eclipse中设置maven仓库

maven学习setting.xml配置文件详解

MyEclipse中引用的maven配置文件只访问私服的配置