我有一个我在Maven 3版本中使用的扩展程序,它为我输出构建信息。它有点冗长,所以我想只在一些构建配置文件中运行它。但<extensions>
仅允许在主<build>
中,而不在个人资料中。
所以我的问题是双重的。首先,有没有办法限制扩展只在特定的配置文件中运行我可以在pom.xml
中执行的操作?其次,如果没有,那么我应该如何实现呢?
我最初的想法是调用mavenSession.getCurrentProject().getActiveProfiles()
并将其与我想要运行扩展程序的配置文件列表进行比较。但后来我需要以某种方式在那里传递配置文件信息。我想在pom.xml
而不是从命令行执行此操作,但我不确定该信息应存储在何处。
答案 0 :(得分:1)
应该使用的一件事是使用包含以逗号分隔的配置文件名称列表的属性,理想情况是以使连接显而易见的方式命名(即“extension-artifactId”.run-for-profiles)。然后通过-D传递,或者将其放在&lt; properties&gt;中用于定义项目默认值的部分。