web-dev-qa-db-ja.com

Mavenexecプラグイン-pythonスクリプトの実行

Win7でMavenを使用してアプリケーションを構築しています。 execプラグインを使用して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>

プロジェクトをビルドすると、以下のエラーが発生します。

Embedded error: Cannot run program "pathToScript/create.py" CreateProcess error=193, %1 is not a valid Win32 application

pythonがインストールされ、%PATH変数に追加されています。

OSプラットフォームから独立して動作するように修正するにはどうすればよいですか?

。:-編集-:。

ワーキングコードスニペット

<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>
16
SpikETidE

Windowsでは、スクリプトは実行可能ではありません。実行可能ファイルはpythonインタープリターであり、スクリプトはその引数であるため、<executable>path to your python interpreter</executable>を入力し、スクリプトを<argument>として追加します。同じことが機能するはずです。どのプラットフォームでも、私はPythonエキスパートではありません。

16
Ryan Stewart

新しいバージョンの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>
0
Grim