Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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
如何在Maven中最后执行概要文件_Maven_Pom.xml_Maven Profiles - Fatal编程技术网

如何在Maven中最后执行概要文件

如何在Maven中最后执行概要文件,maven,pom.xml,maven-profiles,Maven,Pom.xml,Maven Profiles,我有三个不同的插件。其中一个的执行被包装在配置文件中,并在默认情况下被禁用 <profiles> <profile> <id>profile-exec</id> <build> ... <phase>generate-sources</phase> .... </build> <

我有三个不同的插件。其中一个的执行被包装在配置文件中,并在默认情况下被禁用

<profiles>
    <profile>
        <id>profile-exec</id>
        <build>
        ...
        <phase>generate-sources</phase>
        ....
        </build>
        <activation>
            <activeByDefault>false<activeByDefault>
        </activation>
    </profile>
    <profile>
</profiles>
<build>
    <plugins>
        <plugin>
        ...
        <phase>generate-sources</phase>
        <id>test1</id>
        </plugin>
        <plugin>
        ...
        <phase>generate-sources</phase>
        <id>test2</id>
        </plugin>
    </plugins>
</build>
我所寻找的是获得此订单:

test1
test2
profile-exec

以便最后执行概要文件。这可能吗?如果是这样,如何实现呢?

插件是按照定义的顺序调用的。因此:

  • pluginManagement
    部分中按正确的顺序定义所有3个
  • build/plugins
    部分中打开默认插件
  • 在配置文件中打开3d插件
  • 如果您对同一个插件执行了3次,并且希望设置顺序,那么您需要应用一个额外的技巧:

  • 在pluginManagement部分中按正确的顺序定义所有执行
  • 对于应该关闭的,使用
    none
    ,这样它就不会真正运行
  • 然后在概要文件中用相同的id声明关闭的执行,并将其绑定到适当的阶段

  • 你想一次为三个不同的配置文件创建项目吗?@GiorgiTsiklauri不,我只想让这三个插件按照我提到的顺序执行谢谢你的回答。插件是按照定义的顺序调用的。我就是这么想的,但是为什么不先执行配置文件呢?是否需要使用
    插件管理
    ?从文档中,我看到它是用来配置从这个项目继承的项目构建的。但我真的不需要从中继承任何项目one@Paolo,为什么不先执行概要文件,因为没有定义顺序的插件列表。您在这里声明了两个插件,在那里声明了另一个插件。它旨在配置从该文档继承的项目构建-可能文档有点误导,但这不是
    pluginManagement
    的唯一目的。这更多的是关于有一个共同的地方来描述(而不是添加)插件,然后决定在项目中您真正希望在哪里调用它们?谢谢
    test1
    test2
    profile-exec