我写了一个我在一些项目中使用的 maven 插件。在第一个项目中,它只有一个执行,我可以直接执行插件
mvn com.mycompany:my-plugin:0.0.1-SNAPSHOT:do-stuff
在第二个项目中,插件有多次执行,当我尝试上面的命令时,我最终崩溃了,因为插件尝试使用空参数执行。
请注意,在这两种情况下,插件在作为流程资源阶段的一部分执行时都可以正常工作。只有当我尝试只执行插件目标时它才会失败。有人可以帮我理解为什么第二个示例尝试使用空白参数执行吗?
第一个项目(一次执行 - 工作正常):
<plugin>
<groupId>com.mycompany</groupId>
<artifactId>my-plugin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<configuration>
<sourceFiles>
<sourceFile>loadfile</sourceFile>
</sourceFiles>
<outputFile>outputFile</outputFile>
</configuration>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>do-stuff</goal>
</goals>
</execution>
</executions>
</plugin>
第二个项目(多次执行 - 不工作):
<plugin>
<groupId>com.my-company</groupId>
<artifactId>my-plugin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<executions>
<execution>
<id>default</id>
<phase>process-resources</phase>
<configuration>
<sourceFiles>
<sourceFile>file1</sourceFile>
</sourceFiles>
<outputFile>outputFile</outputFile>
</configuration>
<goals>
<goal>do-stuff</goal>
</goals>
</execution>
<execution>
<id>novice</id>
<phase>process-resources</phase>
<configuration>
<sourceFiles>
<sourceFile>file1</sourceFile>
<sourceFile>file2</sourceFile>
</sourceFiles>
<outputFile>outputFile</outputFile>
</configuration>
<goals>
<goal>do-stuff</goal>
</goals>
</execution>
</executions>
</plugin>