(我正在使用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
它工作得很好,但我想知道以下几点:
我试图长期完成的工作(我注意到如果有人有更好的方法的话)是制作一个简单的脚本来构建一个项目列表,并将另一个文件列表(jar/其他修改过的东西)移动到一个文件夹中部署到VMs中,手工操作是一个巨大的痛苦。我在一个批处理脚本中完成了这项工作,我只是很想学习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
回复:
回复:
您是否考虑过使用Maven本身(在这种特殊情况下,Maven的
copy-resources
目标)?回复:
既然您正在使用Java:您是否考虑过Groovy作为您选择的脚本语言?
它的一些优点:
这里是Apache Maven Invoker API。
Mark's answer to Accessing Java API information with Python提到:
请参见my answers there以获取有关如何使用Maven调用程序的示例(在本例中,在Java中)。
相关问题 更多 >
编程相关推荐