2014-04-29 70 views
1

我在文件夾folder1/scripts/appname中有一個java代碼。我需要進入文件夾「appname」,並執行Maven和cron作業

mvn clean test -Dhr=1 -Dmin=0 

它會執行並給出輸出。現在我希望這項工作每1小時運行一次。所以,我做一個cronjob

 40 * * * * /folder1/scripts/appname/appname.sh 

腳本appname.sh有

#!/bin/bash 

    mvn clean test -Dhr=1 -Dmin=0 

而且這是行不通的。我怎樣才能讓這個跑步?

這是一個ubuntu機器。

回答

-1

更改腳本是這樣的:

#!/bin/bash 
cd $(dirname "$0") 
mvn clean test -Dhr=1 -Dmin=0 

我插入一個命令那裏變成該腳本所在的目錄。如果你的maven項目和你的腳本在目錄/folder1/scripts/appname/那麼這應該工作。

在此,cron從用戶的主目錄執行/folder1/scripts/appname/appname.sh。由於該項目不在那裏,mvn clean test失敗。

而是改變劇本,另一種選擇是改變cron作業:

40 * * * * cd /folder1/scripts/appname && ./appname.sh 

的一點是,這種或那種方式,你需要在正確的目錄運行mvn命令。