Estou portando um projeto construído do Linux para o Windows. Estou tendo problemas com a seguinte parte do meu pom.xml
eu substituí
<execution>
<id>rm -rf node_modules/</id>
<goals>
<goal>exec</goal>
</goals>
<phase>initialize</phase>
<configuration>
<executable>rm</executable>
<arguments>
<argument>-fr</argument>
<argument>node_modules/</argument>
</arguments>
</configuration>
</execution>
Com
<execution>
<id>rm -rf node_modules/</id>
<goals>
<goal>exec</goal>
</goals>
<phase>initialize</phase>
<configuration>
<executable>rmdir</executable>
<arguments>
<argument>.\node_modules\</argument>
<argument>/S</argument>
<argument>/Q</argument>
</arguments>
</configuration>
</execution>
O primeiro funciona no Linux, mas falha no Windows, então pensei em usar os comandos cmd.exe apropriados. No entanto, isso está falhando com um arquivo não encontrado, o diretório existe, então minha suposição é que é o comando que está falhando. Eu também tentei o comando do PowerShell Remove-Item com argumentos apropriados, mas também falhou. Também tentei alterar a ordem dos argumentos e não consegui.
rm
é um executável do Linux, masrmdir
não é um executável do Windows: é um comando. O executável correto estáCMD
nos/c rmdir
dois primeiros argumentos. Porém omaven-antrun-plugin
sugerido acima e omaven-clean-plugin
são escolhas melhores porque o resultado funcionará tanto com Linux quanto com Windows.