我正在尝试从python脚本运行Maven项目。我已经安装了Apache Maven。运行命令:从pom.xml所在的项目文件夹中的终端mvn exec:java -D"exec.mainClass"="org.matsim.project.RunMatsim"
,不会产生任何错误,并且项目可以正常运行。
但是从我的python脚本运行以下代码时
import subprocess as sp
def execute(cmd):
popen = sp.Popen(cmd, stdout=sp.PIPE, universal_newlines=True,shell=True)
for stdout_line in iter(popen.stdout.readline, ""):
yield stdout_line
popen.stdout.close()
return_code = popen.wait()
if return_code:
raise sp.CalledProcessError(return_code, cmd)
for path in execute(["mvn", "exec:java" ,'-D"exec.mainClass"="org.matsim.project.MatsimRun"']):
print(path, end="")
我遇到以下错误:
[错误]未为此构建指定目标。您必须以:或:[:]:格式指定有效的生命周期阶段或目标。可用的生命周期阶段包括:验证,初始化,生成源,流程源,生成资源,流程资源,编译,流程类,生成测试源,流程测试源,生成测试资源,流程-test-resources,test-compile,process-test-classes,test,prepare-package,package,pre-integration-test,integration-test,post-integration-test,verify`
为什么会这样?有什么问题吗?
[在两种情况下(终端,python脚本)发生的警告都是相同的。
尝试删除exec.mainClass
周围的双引号,即:
通常,当我从java / python / etc运行程序时遇到args问题。我将要使用的命令包装在sh -c
中,如下所示: