我写了一个maven插件,我在某些项目上使用。在第一个项目时,它仅具有一个执行和I可直接与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>
有没有办法让它做所有的执行,缺少整个目标阶段的运行? –
小挑逗,“目标”就是你的插件定义的内容,“阶段”是目标的执行必然要实现的目标。不幸的是,我并不知道这样的解决方案,除了在命令行中使用目标和不同的配置参数调用'mvn'外壳脚本之外。但是你的问题引发了一个红旗:你确定你没有试图将Maven用于它不适用的东西?这里有什么情况? –
感谢您的澄清。我们有一个在流程资源阶段执行的插件来准备额外的资源。 CLI没有问题,但该插件还没有M2E知道,所以我们希望能够启动一个eclipse,它只运行所有的插件执行。我想我可以为mvn process-resources创建一个启动程序,并且工作正常,但我仍然好奇是否有办法执行所有插件执行(而不是我们在进程资源中执行其他任何操作)。 –