【问题标题】:Enable maven3 extension only on specified profile(s)仅在指定的配置文件上启用 maven3 扩展
【发布时间】:2012-01-31 15:02:21
【问题描述】:

我在 Maven 3 构建中使用了一个扩展,它为我输出构建信息。这有点冗长,所以我只想在一些构建配置文件中运行它。但是<extensions> 只允许在主要的<build> 中使用,而不是在配置文件中。

所以我的问题有两个方面。首先,是否已经有一种方法可以限制扩展仅在特定配置文件中运行,而我可以在pom.xml 中执行某些操作?其次,如果不是,那我应该如何实现呢?

我最初的想法是致电mavenSession.getCurrentProject().getActiveProfiles() 并将其与我要运行扩展程序的配置文件列表进行比较。但是我需要以某种方式在那里传递个人资料信息。我想在pom.xml 中而不是从命令行中执行此操作,但我不确定该信息应该存储在哪里。

【问题讨论】:

  • 老问题,但我添加了here 一个通过配置文件添加/更改构建扩展的技巧,希望对一些未来的访问者有价值

标签: maven maven-3 maven-plugin maven-extension


【解决方案1】:

应该起作用的一件事是使用包含逗号分隔的配置文件名称列表的属性,理想情况下以使连接明显的方式命名(即«extension-artifactId».run-for-profiles)。然后通过 -D 传递它,或者将它放在 部分以定义项目默认值。

【讨论】:

  • 我同意了你的建议,因为我找不到将参数传递给扩展的通用方法。
  • @vertti 我也遇到了同样的问题,我不太确定我是否理解建议的解决方案。能否请您添加更多详细信息?
  • @forhas 我在一个名为 maven-build-utils 的 maven 插件中实现了这个。您可以查看此commit 了解所有详细信息。希望对您有所帮助。
  • @vertti 谢谢!我去看看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-05
  • 2020-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多