java - Maven 和 cron 作业

标签 java maven cron

我在文件夹folder1/scripts/appname中有一个java代码。我需要进入文件夹“appname”并执行

    mvn clean test -Dhr=1 -Dmin=0

它将执行并给出输出。现在我希望这项工作每 1 小时运行一次。所以我做了一个定时任务

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

脚本appname.sh有

    #!/bin/bash

    mvn clean test -Dhr=1 -Dmin=0

而且它不起作用。我怎样才能让它运行?

这是一台 ubuntu 机器。

最佳答案

像这样更改脚本:

#!/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 命令之前,您需要位于正确的目录中。

关于java - Maven 和 cron 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23374231/

相关文章:

java - Gxt 3.0.0 支持的 Gxt 3.1.1 实现 Dialog.getHideButton() 的方法是什么?

java - 使用 maven-surefire 运行测试时,Spring-Autowiring 发生在 @BeforeClass 之后

cron - 我可以将 Jenkins 的 "Build periodically"设置为从 3 月 13 日开始每隔一个星期二构建一次吗?

java - Spring Kafka 生产者抛出 TimeoutExceptions

java - java数组排序类

java - 无法使用 selenium 传递客户 ID 中的任何值

java - HTTP 状态 500 - 未找到 javax.servlet.ServletException 文件

android - 如何设置完全脱机的Cordova构建?

php - 如何使用 Magento 测试 cron?

linux - 检查屏幕 session 是否正在运行并通过 cron 自动执行