使用paramiko执行ssh命令的时候有一个很坑爹的地方:它无法准确的识别你的系统环境变量,所以使用一些命令的时候会发现,直接在系统中执行该命令的时候可以,但是换成paramiko执行的时候会报错说是命令无法识别,针对这种需要使用该命令的全局完整路径名,如果需要在命令中使用到某个参数也可以使用export的方式。
直接在shell下设置变量
不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时候又要重新设置,比较麻烦。
只需在shell终端执行下列命令:
export JAVA_HOME=/usr/share/jdk1.6.0_14
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
dabao_cmd = 'export JAVA_HOME=/usr/local/jdk1.7.0_55; cd %s; /home/apache-maven-3.2.1/bin/mvn clean install -Dmaven.test.skip=true' % self.pom_file_location
1.设置JAVA_HOME环境变量
2.进入pom.xml所在路径
3.使用mvn的完整路径去执行命令!