Запустите простой Java HelloWorld с планировщиком Heroku

#java #maven #heroku

Вопрос:

Я хочу запустить простую программу-например, HelloWorld-на Heroku, а также использовать планировщик Heroku для запуска каждые 10 минут.

Я не уверен насчет Maven-pom.xml настройка, система задач запуска Heroku и планировщик Heroku.

Теперь у меня есть этот источник, но результат задачи не удался.

 > MyApp.java
package com.github.graycat27.sample
public class MyApp {
   public static void main(String[] args){
      System.out.println("Hello Heroku Scheduler task!");
   }
}
 
 > pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.github.graycat27</groupId>
    <artifactId>MyApp</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>
</project>
 
 > Heroku Scheduler job command
$ java MyApp
 

развертывание на Heroku через GitHub завершилось успешно.

в результате, logs показывает

 2021-07-21T11:13:59 app[api]: Starting process with command `java MyApp` by user scheduler@addons.heroku.com
2021-07-21T11:14:02 heroku[scheduler.5096]: Starting process with command `java MyApp`
2021-07-21T11:14:03 heroku[scheduler.5096]: State changed from starting to up
2021-07-21T11:14:05 app[scheduler.5096]: Picked up JAVA_TOOL_OPTIONS: -Xmx300m -Xss512k -XX:CICompilerCount=2 -Dfile.encoding=UTF-8
2021-07-21T11:14:05 app[scheduler.5096]: Error: Could not find or load main class MyApp
2021-07-21T11:14:05 heroku[scheduler.5096]: Process exited with status 1
2021-07-21T11:14:05 heroku[scheduler.5096]: State changed from up to complete
 

что я должен изменить в своей программе или конфигурации?

Ответ №1:

Ваше имя класса не MyApp является его com.github.graycat27.sample.MyApp именем, и вам необходимо указать, где он может найти этот файл по пути к классу/модулю