Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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 2 使用maven汇编器插件的输出作为插件的输入_Maven 2_Maven Plugin - Fatal编程技术网

Maven 2 使用maven汇编器插件的输出作为插件的输入

Maven 2 使用maven汇编器插件的输出作为插件的输入,maven-2,maven-plugin,Maven 2,Maven Plugin,我有许多maven项目,它们为第三方应用程序构建插件框架的各种组件。我有一个主项目,使用聚合(元素),包括所有子项目。这个主项目还调用maven汇编插件。我现在可以构建所有子项目,并让汇编程序将它们的输出/文件/源/资源等复制到主构建目录中,然后将所有这些文件压缩到一个发行版zip中。我使用以下命令执行此操作: mvn包程序集:程序集 这一切都很好。现在我想将这个zip文件传递到另一个maven插件中,该插件将打开它并创建一个自定义清单文件,其中列出了zip内容,然后将这个清单文件插入到zip文

我有许多maven项目,它们为第三方应用程序构建插件框架的各种组件。我有一个主项目,使用聚合(元素),包括所有子项目。这个主项目还调用maven汇编插件。我现在可以构建所有子项目,并让汇编程序将它们的输出/文件/源/资源等复制到主构建目录中,然后将所有这些文件压缩到一个发行版zip中。我使用以下命令执行此操作:

mvn包程序集:程序集

这一切都很好。现在我想将这个zip文件传递到另一个maven插件中,该插件将打开它并创建一个自定义清单文件,其中列出了zip内容,然后将这个清单文件插入到zip文件中。我已经写了插件来做这件事,它的工作很好

我的问题是让maven在构建过程中运行这个插件

该插件需要汇编程序的输出,但似乎不需要在汇编程序之后运行插件


有人能帮忙吗?

假设程序集已经被定义为在目标/程序集中创建程序集,您只需将插件的执行绑定到的阶段,这样您就可以运行
mvn install
(例如),并在该生命周期内执行插件

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <executions>
      <execution>
        <id>generate-assembly</id>
        <phase>package</phase>
        <goals>
          <goal>single</goal>
        </goals>
        <configuration>
          <!--your configuration here -->
          ...
        </configuration>
      </execution>
    </executions>
  </plugin>

org.apache.maven.plugins
maven汇编插件
生成程序集
包裹
单一的
...
然后将插件的执行绑定到稍后的阶段(比如集成测试),以便插件能够访问程序集文件:

  <plugin>
    <groupId>your.plugin.groupId</groupId>
    <artifactId>your-artifactId</artifactId>
    <executions>
      <execution>
        <id>mung-manifests</id>
        <phase>package</phase>
        <goals>
          <goal>your-goal-name</goal>
        </goals>
        <configuration>
          <assemblyDirectory>${project.build.directory}/assemblies</assemblyDirectory>
        </configuration>
      </execution>
    </executions>
  </plugin>

您的.plugin.groupId
你的人工制品
芒格舱单
包裹
你的目标名称
${project.build.directory}/assemblies
使用这种方法,当您运行
mvn包
(或安装、验证、部署等更高阶段)时,每个插件都将在相关阶段(包)中执行

请注意,您的插件应该在程序集插件之后定义,以确保它随后执行(如果它们处于不同阶段,则顺序无关紧要,只有在相同阶段)