多个插件执行之间的Maven共享配置

时间:2013-05-28 15:31:22

标签: maven

如果我有多个Maven插件的执行并且他们共享至少一个相同的配置值,我是否有办法在插件的所有执行之间共享此配置。

考虑一个包含两个执行的构建插件的简单案例:

<plugin>
    <!-- ID, version... -->
    <executions>
        <execution>
            <id>ID1</id>
            <configuration>
                <myConfig>foo</myConfig>
                ...
            </configuration>
        </execution>
        <execution>
            <id>ID2</id>
            <configuration>
                <myConfig>foo</myConfig>
                ...
            </configuration>
        </execution>
    </executions>
</plugin>

如何重写此内容,以便ID1ID2执行对myConfig配置使用相同的值?

2 个答案:

答案 0 :(得分:5)

为什么不在具体执行之外移动常见配置?

<plugin>
    <!-- ID, version... -->
    <configuration>
        <commonConfig>foo</commonConfig>
    </configuration>
    <executions>
        <execution>
            <id>ID1</id>
            <configuration>
                <specificConfig>bar</specificConfig>
            </configuration>
        </execution>
        <execution>
            <id>ID1</id>
            <configuration>
                <specificConfig>baz</specificConfig>
            </configuration>
        </execution>
    </executions>
</plugin>

它适用于我使用的一些插件(例如gmaven-plugin)和Maven documentation我没有找到任何证据表明它不起作用。

答案 1 :(得分:1)

使用在使用之前在某处设置的属性:

<project>
    ...
    <properties>
        <myConfig>foo</myConfig>
    </properties>
    ...
</project>

然后像这样使用它

<execution>
    <id>ID1</id>
    <configuration>
        <myConfig>${myConfig}</myConfig>
         ...
    </configuration>
</execution>
<execution>
    <id>ID2</id>
    <configuration>
        <myConfig>${myConfig}</myConfig>
         ...
    </configuration>
</execution>