Как запустить код Python из Maven, где Python может или не может быть в пути - PullRequest
3 голосов
/ 03 апреля 2012

Я хочу запустить несколько модульных тестов Python из моего модуля Maven.У меня есть настройка с плагином 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 Ответ

3 голосов
/ 03 апреля 2012

Единственный способ, которым я до сих пор придумал, - это создать файл python.bat в рабочем каталоге, который добавляет подсказки к пути перед его запуском.Если python находится в пути, он найдет его и выполнит, в противном случае он найдет скрипт bat и затем попробует его с измененным путем.

Хак, но он работает, вы помещаете подсказки в среду 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
...