Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅在指定的配置文件上启用maven3扩展_Maven_Maven 3_Maven Plugin_Maven Extension - Fatal编程技术网

仅在指定的配置文件上启用maven3扩展

仅在指定的配置文件上启用maven3扩展,maven,maven-3,maven-plugin,maven-extension,Maven,Maven 3,Maven Plugin,Maven Extension,我在Maven 3构建中使用了一个扩展,它为我输出构建信息。它有点冗长,所以我只想在一些构建概要文件中运行它。但是仅允许在主中使用,而不允许在配置文件中使用 所以我的问题有两个方面。首先,是否已经有一种方法可以限制扩展只在特定的概要文件中运行,而我可以在pom.xml中做一些事情?第二,如果没有,那么我应该如何实现这一点 我最初的想法是调用mavenSession.getCurrentProject().getActiveProfiles(),并将其与我想要运行扩展的配置文件列表进行比较。但是我

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

所以我的问题有两个方面。首先,是否已经有一种方法可以限制扩展只在特定的概要文件中运行,而我可以在
pom.xml
中做一些事情?第二,如果没有,那么我应该如何实现这一点


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

应该工作的一件事是使用包含逗号分隔的配置文件名称列表的属性,理想的命名方式是使连接显而易见(即«extension artifactId»。为配置文件运行)。然后通过-D传递该参数,或者将其放在定义项目默认值的部分。

我同意你的建议,因为我无法找到将参数传递给扩展的通用方法。@vertti我也遇到过同样的问题,我不太确定我是否理解建议的解决方案。您能添加更多详细信息吗?@forhas我已经在一个名为
maven build utils
的maven插件中实现了这一点。你可以在这里查看所有细节。希望对你有所帮助。@vertti谢谢你!我会看一看。老问题,但我添加了一个技巧,通过配置文件添加/更改构建扩展,希望对一些未来的访问者有价值