我寫了一個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創建一個啓動程序,並且工作正常,但我仍然好奇是否有辦法執行所有插件執行(而不是我們在進程資源中執行其他任何操作)。 –