example - Maven exec plugin-Ejecutando un script en python
exec-maven-plugin example (2)
En Windows, el script no es ejecutable. El ejecutable es el intérprete de python, y el script es un argumento para él, así que ponga <executable>path to your python interpreter</executable>
y agregue el script como un <argument>
. Espero que lo mismo funcione para cualquier plataforma, pero no soy un experto en Python.
Estoy usando maven en Win 7 para construir una aplicación. Utilizo el complemento exec para invocar un script de Python.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>create-dir</id>
<phase>process-classes</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>src/main/upgrade/create.py</executable>
<arguments>
<argument>ChangeSet.txt</argument>
</arguments>
</configuration>
</plugin>
Recibo el siguiente error cuando compilo el proyecto.
Embedded error: Cannot run program "pathToScript/create.py" CreateProcess error=193, %1 is not a valid Win32 application
Tengo Python instalado y añadido a la variable% PATH.
¿Cómo lo arreglo para que funcione independientemente de la plataforma del sistema operativo?
.:-EDITAR-:.
CÓDIGO DE TRABAJO SNIPPET
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<configuration>
<executable>python</executable>
<workingDirectory>src/main/upgrade/</workingDirectory>
<arguments>
<argument>createChangeSet.py</argument>
</arguments>
</configuration>
<id>python-build</id>
<phase>prepare-package</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
</plugin>
Solo quería agregar que con la versión más reciente de exec-maven-plugin, la etiqueta de configuración debe colocarse después de que la etiqueta de ejecuciones funcione.
Como en el fragmento de trabajo anterior:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>python-build</id>
<phase>prepare-package</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>python</executable>
<workingDirectory>src/main/upgrade/</workingDirectory>
<arguments>
<argument>createChangeSet.py</argument>
</arguments>
</configuration>
</plugin>