https://stackoverflow.com/questions/54338297/how-can-i-execute-a-command-line-task-for-a-spring-boot-application-like-a-rake
package com.example.tasks;
@Component
public class WeeklyReport implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
Arrays.asList(args).stream().forEach(a -> System.out.println(a));
if (!(args.length > 0 && args[0].equals("-task report:weekly"))) return;
System.out.println("weekly report");
System.exit(0);
}
And running it from a 'cron' job with
$ mvn spring-boot:run -Drun.arguments="-task report:weekly"