从cron作业执行Maven命令

时间:2014-01-23 09:56:52

标签: shell maven selenium cron

我使用Selenium webdriver,Maven& amp;创建了一个自动测试套件。 Java.Also我已经创建了一个shell脚本来启动Web驱动程序,然后使用maven命令执行测试套件。这很有效。

但是当使用cron作业运行相同的shell脚本时,不会执行maven命令。 我看到了一些解决方案来在shell脚本中指定maven的路径。这对我来说也不起作用。

  

#!/斌/庆典

     

echo“/bin/sh /home/loop/bin/startSelenium.sh start

     

cd / home / me / projects / my_test_suite

     

export PATH = $ PATH:/home/me/installs/apache-maven-3.0.4/bin

     

mvn clean test -DsuiteXmlFile = / src / test / resources / testng.xml -Ptest -Dgroups = group0>> 〜/斌/ mvnLogGroup1.txt

我可以在这里通过cron作业运行mvn命令吗?

由于

3 个答案:

答案 0 :(得分:2)

我有同样的问题,我通过将mvn调用放入shell脚本并从cron调用shell脚本来解决它。这种方式的优点是您可以在shell脚本中设置环境变量。这是我的shell脚本:

#!/bin/bash 

export PATH=$PATH:/opt/mvn/bin:/usr/bin
export M2_HOME=/opt/mvn
export M2=/opt/mvn/bin
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/

/opt/mvn/bin/mvn -f /mnt/crawler/versioneye_maven_crawler/pom.xml crawl:clojars

我在/ opt / mvn中安装了Maven。 crontab中的条目如下所示:

1 1 * * * /mnt/crawler/clojars.sh >> /mnt/crawler/clojars.txt

这适用于Ubuntu。这就是我们为clojars抓取VersionEye的方式。希望对你有所帮助。

答案 1 :(得分:0)

希望在脚本中以完整的路径运行maven可能有所帮助 /home/me/installs/apache-maven-3.0.4/bin/mvn clean test -DsuiteXmlFile=/src/test/resources/testng.xml -Ptest -Dgroups=group0 >> ~/bin/mvnLogGroup1.txt

答案 2 :(得分:0)

来自man crontab

  

cron(8)守护程序自动设置了几个环境变量。 SHELL设置为/ bin / sh,LOGNAME和HOME是从crontab所有者的/ etc / passwd行设置的。 HOME和SHELL可能会被crontab中的设置覆盖; LOGNAME可能没有。

PATH(您正在使用$PATH)不是其中一个变量!你需要包括像Java这样的东西。或者更多。

尝试此操作:将PATH设置为空白,然后从命令行运行脚本。这应该会让您非常清楚在脚本中需要考虑的其他内容。