gpt4 book ai didi

python - 从 Python 脚本运行 Maven 的方法?

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:40 26 4
gpt4 key购买 nike

(我使用的是 Windows。)

我正在尝试从 python 脚本运行 maven。我有这个:

import subprocess

mvn="C:\\_home\\apache-maven-2.2.1\\bin\\mvn.bat --version"
p = subprocess.Popen(mvn, shell=True, stdout = subprocess.PIPE)

stdout, stderr = p.communicate()
print p.returncode # is 0 if success

它工作正常,但我想知道以下问题:

  • 添加参数而不是附加字符串的更好方法。
  • 也许没有上述的一些特定的方法来运行 maven。
  • 一种显示输出的方法(目前它仅根据失败/成功打印 1 或 0)。

我想要长期完成的事情(我注意到这一点以防有人有更好的方法)是制作一个简单的脚本来构建项目列表并将另一个文件列表( jar /其他修改的东西)移动到要部署到 VM 的文件夹,手动执行是一件非常痛苦的事情。我在一个批处理脚本中工作没有汗水,我只是好奇学习 Python 并想知道它是否更容易管理,因为我可以只制作几个列表并遍历每个位置而不是一行批处理脚本中的每个任务。

(我的批处理脚本的简短版本。)

@set version=7.8.3
@set staging_folder=C:\Users\me\Desktop\staging

@set stage_was=%staging_folder%\was
@set stage_ear=%stage_was%\stuffui.ear
@set stage_war=%stage_ear%\stuff-%version%.war

:: delete stage contents
call del /s /q %staging_folder%
call rmdir /s /q %stage_was%

:: make folders
call mkdir %stage_ear%
call mkdir %stage_war%\WEB-INF\lib

:: maven builds
call mvn -f C:\workspace\pom.xml -pl proj1,proj2 clean install

:: copy to stage
call xcopy C:\workspace\proj1\target\thing1.jar %stage_ear%\ /i /y

call xcopy C:\workspace\proj2\target\thing2.jar %stage_ear%\ /i /y
call xcopy C:\workspace\proj2\target\thing2.jar %stage_war%\WEB-INF\lib\ /i /y

最佳答案

Apache Maven Invoker API .

Mark's answer to Accessing Java API information with Python提及:

Jython which is Python run on the Java VM.

参见 my answers there有关如何使用 Maven Invoker 的示例(在本例中来自 Java)。

关于python - 从 Python 脚本运行 Maven 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30945161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com