Maven 如何启动独立的quartz作业

Maven 如何启动独立的quartz作业,maven,cron,quartz-scheduler,Maven,Cron,Quartz Scheduler,我正在使用quartz在我的服务器上设置一些cron。但我如何在服务器上执行这个文件,以便可以调度cron。我试着使用插件 “org.codehaus.mojo”来执行java文件。但当我以deamon的身份运行mvn安装时,它总是会创建一个新的触发器。如何在“mvn安装”上重新初始化cron。按照您编写主方法的方式,应用程序将在调度作业后立即退出。虽然quartz任务在不同的线程中调度,但当进程结束时,它会终止所有活动线程 只需在调度器.scheduleJob之后添加while(true){}

我正在使用quartz在我的服务器上设置一些cron。但我如何在服务器上执行这个文件,以便可以调度cron。我试着使用插件
“org.codehaus.mojo”来执行java文件。但当我以deamon的身份运行mvn安装时,它总是会创建一个新的触发器。如何在“mvn安装”上重新初始化cron。按照您编写主方法的方式,应用程序将在调度作业后立即退出。虽然quartz任务在不同的线程中调度,但当进程结束时,它会终止所有活动线程

只需在
调度器.scheduleJob
之后添加
while(true){}
语句,即可保持应用程序运行


现在,让maven构建您的jar并在运行“mvn clean install-DskipTests”后执行
java-jar myjar.jar

,它永远不会返回到终端。这没有任何意义。maven只是构建您的项目。特别是对于
-DskipTests=true
(您有“=true”部分吗?),不会执行任何代码。您的POM可能还有其他问题。如果您的意思是当您运行jar时,它不会返回到终端,那么这就是while的结果(true)。您的应用程序在被中断(即Ctrl-C)之前不会退出。如果您想让它在无人参与的情况下运行,请告诉我您也有一些选项,包括只使用普通的旧CRON(linux)或Windows任务管理器运行jar。更优雅的(但也更Rube-Golberg)是创建一个服务。感谢您的快速响应,是的,我希望在服务器上无人值守地运行该服务,无论何时,我都将运行“mvn安装”在服务器上,它将终止先前的触发器并设置新的触发器。最简单的方法是不使用quartz—只使用执行jar和退出的操作系统调度程序(HelloJob.java中的任何内容)。如果你真的需要一个服务,我已经使用了ApacheProcrun(我假设你在Windows上)。看看:如果它作为服务运行,请保持while(true)循环,这样它就不会退出。当您停止服务时,您将中断该循环。
public class CronTriggerExample
{
public static void main(String[] args) throws Exception
{
    try
    {
        JobDetail job = JobBuilder.newJob(HelloJob.class).withIdentity("dummyJobName", "group1").build();

        Trigger trigger =
                TriggerBuilder.newTrigger().withIdentity("dummyTriggerName", "group1")
                        .withSchedule(CronScheduleBuilder.cronSchedule("0/2 * * * * ?")).build();

        // schedule it
        Scheduler scheduler = new StdSchedulerFactory().getScheduler();
        scheduler.start();
        scheduler.scheduleJob(job, trigger);
        return;
    }
    catch (SchedulerException e)
    {
        e.printStackTrace();
    }
}
}