【问题标题】:Activating a settings.xml Defined Maven Profile From POM File从 POM 文件激活 settings.xml 定义的 Maven 配置文件
【发布时间】:2016-05-07 08:40:39
【问题描述】:

我们的企业团队维护着一个 settings.xml 文件,该文件定义了开发项目可以使用 Maven 构建其工件并将其安装到存储库中的各种配置文件。期望 Jenkins 中的每个项目都会定义一个 -P 参数并指定所需的配置文件。

这是我的问题:我需要使用的配置文件指定了一个通常对我的项目不可见的存储库(分阶段发布存储库),因此如果该配置文件处于活动状态,则无法依赖该存储库中的任何内容。我需要一种方法来激活我项目的pom.xml 文件中settings.xml 中定义的配置文件。否则,在 Eclipse 中查看我的项目时,pom.xml 中会显示无法解析依赖关系的错误,因为配置文件未激活以使存储库可见。

有没有办法在pom.xml 文件中激活settings.xml 定义的配置文件?或者,有没有办法告诉 Eclipse 始终激活特定项目的配置文件?

【问题讨论】:

  • 为什么不能在命令行激活配置文件?我不确定我是否理解了这个问题。
  • 在 settings.xml 中定义构建配置文件从来都不是一个好主意,尤其是在 Jenkins 中。 Jenkins 有一个很好的插件:Config File Provider 可以完美地处理这个问题。此外,听起来您应该使用存储库管理器进行开发...
  • @khmarbaise :我会让企业人员知道这个插件,谢谢。我们正在使用存储库管理器。我的问题是候选版本作为开发中其他项目的依赖项的可见性。
  • @Tunaki :问题在于 Eclipse 在其正常工作区构建期间没有指定命令行。我确实找到了解决方案,它在我自己提供的答案中。
  • @cneff 你错了,确实如此;)。创建一个自定义 Maven 构建(运行 > Maven 构建...),您有一个文本框:您可以列出“活动配置文件”。然后,您可以使用 ${projectloc} 占位符使该构建配置通用。然后你只需要选择项目并运行配置!

标签: eclipse maven maven-profiles


【解决方案1】:

您可以使用activateByDefault 标签指定要使用的默认配置文件:

    <profile>
           <id>ProfileToActivate</id>
           <activation>
             <activeByDefault>true</activeByDefault>
           </activation>
    </profile>

【讨论】:

  • 这适用于定义配置文件的地方,在这种情况下是settings.xml 文件,我无权更改。此外,当我是唯一一个希望它一直处于活动状态的项目时,这将使它对每个人都有效。
【解决方案2】:

经过更多研究,我在 Eclipse 中找到了一个项目特定的 Maven 属性,我可以在其中设置活动配置文件。您可以通过右键单击项目来设置它,选择“属性”,然后选择“Maven”。您会看到“Active Maven Profiles(逗号分隔):”的文本输入框。

这解决了我的问题。

我在 Eclipse 中而不是在项目级别寻找更全球化的解决方案。但这似乎行得通。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 2014-10-29
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    相关资源
    最近更新 更多