【问题标题】:Maven plugin additional executionsMaven 插件附加执行
【发布时间】:2011-10-26 03:55:57
【问题描述】:

我需要在同一阶段多次执行同一个 maven 插件。

我想要什么:

  1. 执行 maven-assembly-plugin
  2. 执行 myplugin(取决于步骤 1)
  3. 再次执行 maven-assembly-plugin(取决于步骤 2)
  4. 再次执行 myplugin(取决于步骤 3)

我按顺序定义插件时的执行顺序(与上面的顺序相同):

  1. 执行 maven-assembly-plugin
  2. 再次执行 maven-assembly-plugin
  3. 执行 myplugin
  4. 再次执行 myplugin

我的解决方案是在我自己的插件中组合所有执行以控制确切的顺序,但我认为这不是最好的方法。谢谢!

【问题讨论】:

    标签: maven-plugin


    【解决方案1】:

    您是否必须在同一阶段运行插件?你不能使用其他相关的阶段吗? Maven 现在有很多阶段:) 例如“准备包”与“包”。我可能会尝试为这样的插件定义多个执行(顺便说一句,这不是现实世界的场景):

             <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <id>assembly1</id>
                        <goals>
                            <goal>assembly</goal>
                        </goals>
                        <phase>prepare-package</phase>
                        <configuration>
                            <descriptorRefs>
                                <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>
                        </configuration>
                    </execution>
                    <execution>
                        <id>assembly2</id>
                        <goals>
                            <goal>assembly</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                            <descriptorRefs>
                                <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
    

    但不确定它是否适用于您想要的订单。可能值得一试。

    【讨论】:

    • 这对我的具体问题来说是一个很好的解决方案。我意识到前两次执行应该处于准备包阶段。但是如果我需要两次以上的处决呢?我不希望通过将阶段用作解决方法来扭曲阶段的语义。然后我需要的是通过添加阶段(例如:package-step1、package-step2、p​​ackage-step3 等)来轻松优化生命周期。也许maven不支持这个。我将看一下构建生命周期覆盖。谢谢你的回答!
    • 我怀疑当前可用的阶段几乎是内置的。他们在该工具的历史上为不同类型的需求添加了新阶段,但您的示例非常精致:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    • 1970-01-01
    相关资源
    最近更新 更多