假设程序集已经定义为在目标/程序集中创建程序集,您只需将插件的执行绑定到标准生命周期的阶段,这样您就可以运行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>
然后,您将插件的执行绑定到稍后阶段(例如集成测试),以便它能够访问程序集文件:
<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>
使用这种方法,每个插件将在您运行时mvn package
(或后续阶段,如安装、验证、部署......)在相关阶段(包)中执行。
请注意,您的插件应该在组装插件之后定义,以确保它在之后执行(如果它们处于不同阶段,则顺序无关紧要,仅在同一阶段时)。