如何从Maven运行python代码,其中python可能在路径中,也可能不在路径中

时间:2012-04-02 23:45:58

标签: python maven

我想从我的Maven模块运行一些Python单元测试。我有一个有效的exec插件设置,但是我遇到了麻烦。如果Python不在路径中,那么这会失败。理想情况下,我想要一种方法来修改运行时路径并为其添加一个已知的好提示,但在运行时路径中找到它。

这是我的exec插件设置

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <executions>
        <execution>
            <configuration>
                <executable>python</executable>
                <workingDirectory>src/main/config/bus/pythonlib</workingDirectory>
                <arguments>
                  <argument>run_all_tests.py</argument>
                </arguments>
            </configuration>
            <id>python-test</id>
            <phase>test</phase>
            <goals>
                <goal>exec</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Maven有更好的方法吗?有没有办法用变量替换python可执行文件,或修改路径?

1 个答案:

答案 0 :(得分:3)

到目前为止我唯一想到的方法是在工作目录中创建一个python.bat文件,在运行之前将提示添加到路径中。如果python在路径中,它将找到并执行它,否则它会找到bat脚本,然后使用修改后的路径尝试它。

一个hack,但是它有效,你把提示放在PYTHON_HINTS环境变量中

@echo off
rem Work around for developers whose setup does not have python in their path.
setlocal
set PATH=%PATH%;%PYTHON_HINTS%
python.exe %1 %2 %3 %4 %5 %6 %7 %8 %9