16

我在 Win 7 上使用 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 变量中。

如何修复它以使其独立于操作系统平台工作?

。:-编辑-:。

工作代码片段

<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>
4

2 回答 2

17

在 Windows 中,该脚本不可执行。可执行文件是 python 解释器,脚本是它的参数,所以将<executable>path to your python interpreter</executable>脚本作为<argument>. 我希望同样适用于任何平台,但我不是 Python 专家。

于 2012-12-24T17:36:13.590 回答
0

只是想在新版本的 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>
于 2017-04-20T19:32:34.953 回答