仅在指定的配置文件上启用maven3扩展
我在Maven 3构建中使用了一个扩展,它为我输出构建信息。它有点冗长,所以我只想在一些构建概要文件中运行它。但是仅在指定的配置文件上启用maven3扩展,maven,maven-3,maven-plugin,maven-extension,Maven,Maven 3,Maven Plugin,Maven Extension,我在Maven 3构建中使用了一个扩展,它为我输出构建信息。它有点冗长,所以我只想在一些构建概要文件中运行它。但是仅允许在主中使用,而不允许在配置文件中使用 所以我的问题有两个方面。首先,是否已经有一种方法可以限制扩展只在特定的概要文件中运行,而我可以在pom.xml中做一些事情?第二,如果没有,那么我应该如何实现这一点 我最初的想法是调用mavenSession.getCurrentProject().getActiveProfiles(),并将其与我想要运行扩展的配置文件列表进行比较。但是我
仅允许在主
中使用,而不允许在配置文件中使用
所以我的问题有两个方面。首先,是否已经有一种方法可以限制扩展只在特定的概要文件中运行,而我可以在pom.xml
中做一些事情?第二,如果没有,那么我应该如何实现这一点
我最初的想法是调用
mavenSession.getCurrentProject().getActiveProfiles()
,并将其与我想要运行扩展的配置文件列表进行比较。但是我需要以某种方式将个人资料信息传递到那里。。我希望在pom.xml
中而不是从命令行中执行此操作,但我不确定此信息应存储在何处。应该工作的一件事是使用包含逗号分隔的配置文件名称列表的属性,理想的命名方式是使连接显而易见(即«extension artifactId»。为配置文件运行)。然后通过-D传递该参数,或者将其放在定义项目默认值的部分。我同意你的建议,因为我无法找到将参数传递给扩展的通用方法。@vertti我也遇到过同样的问题,我不太确定我是否理解建议的解决方案。您能添加更多详细信息吗?@forhas我已经在一个名为maven build utils
的maven插件中实现了这一点。你可以在这里查看所有细节。希望对你有所帮助。@vertti谢谢你!我会看一看。老问题,但我添加了一个技巧,通过配置文件添加/更改构建扩展,希望对一些未来的访问者有价值