Плагин Maven exec - Выполнение python script
Я использую maven на Win 7 для создания приложения. Я использую плагин exec для вызова python script.
<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>
Я получаю следующую ошибку при создании проекта.
Embedded error: Cannot run program "pathToScript/create.py" CreateProcess error=193, %1 is not a valid Win32 application
У меня установлен python и добавлен в переменную% PATH.
Как я могу его исправить, чтобы он работал независимо от платформы ОС?
: -. EDIT -:.
РАБОЧИЙ КОД СНИПЕТ
<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>
Ответы
Ответ 1
В Windows script не является исполняемым. Исполняемый файл является интерпретатором python, а script является аргументом для него, поэтому поставьте <executable>path to your python interpreter</executable>
и добавьте script в качестве <argument>
. Я ожидаю, что то же самое должно работать на любой платформе, но я не эксперт Python.
Ответ 2
Просто хотел добавить, что с более новой версией exec-maven-plugin тег конфигурации должен быть размещен после того, как тег выполнения будет работать.
Как и в рабочем фрагменте выше:
<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>