2016-07-25 2 views
-1

Как написать команду maven в python? Я видел этот пример в Интернете, но, похоже, он не работает в Windows.Как запустить команду maven в скрипте python в Windows

def local2(command, print_command=False): 
    from subprocess import Popen, PIPE 
    p = Popen(command, stdout=PIPE, stderr=PIPE) 
    if print_command: print " ".join(command) 
    output, errput = p.communicate() 
    return p.returncode, output, errput 

def uploadQAJavaToNexus(): 
    url = "example" 
    groupId = "example" 
    artifactId = "example" 
    repositoryId = "example" 
    # filePath = 
    version = "version" 

    status, stdout, stderr = local2([ 
            "mvn", 
            "deploy:deploy-file", 
            "-Durl=" +url, 
            "-DrepositoryId=" +repositoryId, 
            "-Dversion=" + version, 
            "-Dfile=" + "path" 
            "-DartifactId=" + artifactId, 
            "-Dpackaging=" + "jar", 
            "-DgroupId" + groupId, 
            ]) 
    return status, stdout, stderr 

UPDATE: Это ошибка я получаю ниже:

Traceback (most recent call last): 
    File "C:\PythonProject\src\Get.py", line 355, in <module> 
    uploadQAJavaToNexus() 
    File "C:\Get.py", line 250, in uploadQAJavaToNexus 
    "-DgroupId" + groupId, 
    File "C:\Get.py", line 227, in local2 
    p = Popen(command, stdout=PIPE, stderr=PIPE) 
    File "C:\Python27\lib\subprocess.py", line 710, in __init__ 
    errread, errwrite) 
    File "C:\Python27\lib\subprocess.py", line 958, in _execute_child 
    startupinfo) 
WindowsError: [Error 2] The system cannot find the file specified 
+0

Каким образом это не работает? Ничего не происходит? Вы получаете какие-либо ошибки? – Jokab

+0

WindowsError: [Ошибка 2] Система не может найти файл, указанный в «-DgroupId» + groupId; & p = Popen (команда, stdout = PIPE, stderr = PIPE) @Jokab – Arshad

+0

Понятно, что Windows не может найти «mvn.exe». Используйте полностью квалифицированный путь или добавьте его каталог в 'PATH'. Вы можете временно установить последнее в своем скрипте через 'os.environ ['PATH'] + = ';% s'% mvn_directory'. – eryksun

ответ

-1

Я предпочитаю использовать ткань (http://www.fabfile.org/):

from fabric import local  
def maven_start(): 
    local('<cmd>') 


$ fab maven_start 
+0

Я не понимаю, что вы имеете в виду. Не могли бы вы рассказать? local предоставляется моя неопределенная ошибка – Arshad

Смежные вопросы