Maven: 如何使用基于Profile的插件

15

我有一个文件用于维护发布版本的构建编号。每次进行发布构建时,该数字都会递增,并将文件保存到svn库中。

现在假设我有一个插件来执行此任务,并且我已经创建了一个构建配置文件。但是我只需要在激活构建配置文件时触发此插件,而不是其他情况下。我猜想可以通过向配置文件添加pluginManagement来实现,如下所示。有什么建议吗?

<profiles>
    <id>release</id>      
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    ..
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</profiles>
2个回答

43

我建议您首先查看构建配置文件的文档。您可以在这里找到它。您需要查看的第一件事是这个部分:

如何触发配置文件?根据所使用的配置文件类型有什么变化?

基本上,一旦您了解了这一点,请注意您放在配置文件部分中的内容与您在配置文件外部拥有的内容非常接近。也就是说,如果您需要特定于配置文件的构建部分,它应该模仿您在配置文件外部拥有的部分-如果您查看pom.xsd,我认为它完全相同。

因此,例如:

<profiles>
    <profile>
        <id>full-build</id>
        <activation>
            <property>
                <name>build</name>
                <value>full</value>
            </property>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo.webstart</groupId>
                    <artifactId>webstart-maven-plugin</artifactId>
                    <version>1.0-beta-1</version>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>jnlp</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <resourcesDirectory>src/main/web</resourcesDirectory>
                        ....

这将通过运行以下命令来触发:mvn package -Dbuild=full

希望这能帮到你。


5
使用pluginManagement不会导致构建插件运行。它用于向子POM指定插件版本和配置信息。此外,您缺少'profiles'的'profile'子元素。最后,除非您计划通过-P激活配置文件,否则您需要一些激活条件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接