2012-01-31 65 views
4

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

所以我的问题是两倍。首先,是否有办法限制扩展程序只能在特定配置文件中运行,而我可以在pom.xml中执行某些操作?其次,如果不是,那么我应该如何实现这一点?

我最初的想法是致电mavenSession.getCurrentProject().getActiveProfiles()并将其与我想要在其上运行扩展的配置文件列表进行比较。但后来我需要以某种方式通过配置文件信息有..我想要做的是,在pom.xml,而不是通过命令行,但我不知道应该在哪里此信息存储。

+0

老问题,但我添加了[这里](http://stackoverflow.com/a/36253007/5606016)通过配置文件添加/更改构建扩展的技巧,希望对未来的访问者有价值 – 2016-03-27 21:46:54

回答

1

一两件事,应该工作是使用含有以逗号分隔的配置文件名列表的方式来进行连接非常明显命名的属性(即«伸长的artifactId».RUN换配置文件)。然后通过-D传递,或者将其放入<属性>部分以定义项目默认值。

+0

我跟你一起去了因为我无法找到将参数传递给扩展的常用方法。 – vertti 2012-02-15 11:09:29

+0

@vertti我也遇到了同样的问题,我不太确定我了解提议的解决方案。你能否添加更多细节? – forhas 2013-07-14 14:34:21

+0

@forhas我实现了这个maven插件,名为'maven-build-utils'。您可以为所有的细节结帐这个[提交](https://github.com/lkoskela/maven-build-utils/commit/99a99016521b4666c061d7e317d1c48174520054)。希望有所帮助。 – vertti 2013-07-14 17:25:10