当前位置: 首页 > 知识库问答 >
问题:

如何使用Heroku&Maven和GitHub托管我的Telegram Bot(Java)?

姜鸿畴
2023-03-14

我的pom.xml文件:

  <modelVersion>4.0.0</modelVersion>
  <groupId>TelegramBOT</groupId>
  <artifactId>TelegramBOT</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <groupId>com.heroku.sdk</groupId>
        <artifactId>heroku-maven-plugin</artifactId>
        <version>3.0.2</version>
        <configuration>
          <release>13</release>
          <appName>TelegramBOT</appName>
          <processTypes>
          <web>java $JAVA_OPTS -cp target/classes:target/dependency/* Main</web>
          </processTypes>
        </configuration>
      </plugin>
    </plugins>
  </build>
  
  <dependencies>
  <!-- https://mvnrepository.com/artifact/org.telegram/telegrambots -->
<dependency>
    <groupId>org.telegram</groupId>
    <artifactId>telegrambots</artifactId>
    <version>4.9</version>
</dependency>
   
  </dependencies>
</project>

这是pom.xml的构建,但我无法在Heroku中托管...它显示一个错误

       [INFO] -------------------------------------------------------------
       [INFO] ------------------------------------------------------------------------
       [INFO] BUILD FAILURE
       [INFO] ------------------------------------------------------------------------
       [INFO] Total time:  10.182 s
       [INFO] Finished at: 2020-06-28T11:59:51Z
       [INFO] ------------------------------------------------------------------------
       [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project TelegramBOT: Compilation failure: Compilation failure: 
       [ERROR] /tmp/build_07ca4d72478d669dcc1d1150921b9882/src/com/TelegramBot/EraserHead/GameHandler.java:[17,60] diamond operator is not supported in -source 1.5
       [ERROR]   (use -source 7 or higher to enable diamond operator)
       [ERROR] /tmp/build_07ca4d72478d669dcc1d1150921b9882/src/com/TelegramBot/EraserHead/ImageGuess.java:[23,60] diamond operator is not supported in -source 1.5
       [ERROR]   (use -source 7 or higher to enable diamond operator)
       [ERROR] -> [Help 1]
       [ERROR] 
       [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
       [ERROR] Re-run Maven using the -X switch to enable full debug logging.
       [ERROR] 
       [ERROR] For more information about the errors and possible solutions, please read the following articles:
       [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
 !     ERROR: Failed to build app with Maven
       We're sorry this build is failing! If you can't find the issue in application code,
       please submit a ticket so we can help: https://help.heroku.com/
 !     Push rejected, failed to compile Java app.
 !     Push failed

这是Heroku控制台....

但在Eclipse Console中,它说构建成功!我不知道该怎么做...我真的需要创建Procfile吗???请帮帮忙...如果你需要看到我程序的源代码,它就在我的GitHub帐户里:https://GitHub.com/saikat0326/saikat-telegram-bot预先感谢...

共有1个答案

谷梁涵忍
2023-03-14

看起来Maven编译器插件使用的是Java 5(默认情况下应该使用Java 6),因此您会得到构建错误Diamond operator is not supported in-Source 1.5

Heroku支持各种Java版本(参见支持的Java版本),您应该可以在POM文件中设置目标版本

<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
 类似资料:
  • 根据这些说明,我将Maven包部署到github。https://help.github.com/en/github/managing-packages-with-github-packages/configuring-apache-maven-for-use-with-github-packages#installing-a-package 这起作用了。 现在,我正在安装第二个Maven项目,它

  • 我有一个小型开源图书馆的分叉,我正在github上工作。我想通过maven让其他开发人员可以使用它,但是我不想运行我自己的Nexus服务器,因为它是一个分叉,所以我不能轻松地将它部署到oss.sonatype.org. 我想做的是将它部署到github,这样其他人就可以使用maven访问它。最好的方法是什么?

  • 我的老师需要我使用一个持续集成构建服务器,所以我使用了Travis CI,我的Java项目托管在GitHub上。 它在Travis上运行得很好:https://travis-ci.org/fabiophillip/calculadoralib 但他让我在自动构建完成后检查代码度量(代码行数、类数、方法等)...有人知道怎么做吗? 我尝试过使用PMD,但我联系了特拉维斯CI来帮助我,他们说特拉维斯根

  • 本文向大家介绍两分钟学会如何在github托管代码,包括了两分钟学会如何在github托管代码的使用技巧和注意事项,需要的朋友参考一下 本篇博客针对不会Git的小童鞋,大神们可以绕过,错误之处谢谢指正; 关于GitHub的强大此处不在说明,知道GitHub也有一段时间了,但是一直苦于不会使用。 本篇文章介绍的是如何将工程代码托管到上面;如果你还没注册GitHub账号请到https://github

  • 问题内容: 我正在尝试使用Node.js将带有AngularJS的Hello World构建推送到Heroku中。但是有多个视图(局部)。 我首先不使用ngRoute部署了Hello World,这意味着:没有局部。很好,很顺利。然后,我尝试推送2个简单的局部。但我认为问题在于托管应用程序,同时要求提供部分内容。我知道这不是正确的方法,我需要您的建议。 这是我的index.html: 部分“ te

  • 因此,我正在开发一个程序,在用户的专用网络(即本地主机)中托管HTML文件,但我不知道如何在Java中实现这一点。我对JavaEE知之甚少。如果这在另一种编程语言(最好是C或Python)中更容易实现,请强调一下。 我试着看了之前的文章,但它们使用Java套接字,这里有一个方便的教程:https://docs.oracle.com/javase/tutorial/networking/socket