在heroku上部署了discord bot,bot不会上线
Posted
技术标签:
【中文标题】在heroku上部署了discord bot,bot不会上线【英文标题】:Deployed discord bot on heroku, bot won't come online 【发布时间】:2020-12-21 04:56:50 【问题描述】:我看过以前的帖子,但我不太了解它们(也许我很愚蠢)。其中一个建议将 procfile 设置为这样
worker: java $JAVA_OPTS -jar <JAR_FILE_PATH>
但我不知道那个文件路径是什么。我按照 Heroku 文档获得了这个,我想知道如何让 discord 机器人上线。
目前,它正在使用命令行“heroku:deploy-war”部署为在 intelliJ 中运行的 maven
这是我的 procfile:worker: java $JAVA_OPTS -jar target\Disbot-1.0-SNAPSHOT.jar
总而言之,这只是一个非常复杂的方式来询问“在heroku中做这件事时的jar文件路径是什么?”
如果有更好的方法或更有效的方法,我很乐意尝试。如果需要更多信息,我会尽可能提供。
【问题讨论】:
解决了这个问题 - 还有更多找到了解决方法。将其打包为 .jar 文件并意识到 Procfile 实际上只是一个命令提示符。使用 Procfile 将 jar 上传到 GitHub,其中包含文本worker: java -jar Jar.jar
。尽管我没有得到答案,但感谢任何花时间研究这个问题的人。
【参考方案1】:
由于 Heroku 在随机的/tmp
中生成target
目录,当前答案在此答案时(2021-09-18)不起作用,所以我按照Heroku documentation 中的这些步骤操作,使用这个项目结构:
将此构建依赖项添加到. ├─ pom.xml ├─ Procfile └─ src └─ main └─ java └─ com └─ example └─ Main.java
pom.xml
:
在此指令中添加了<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>appassembler-maven-plugin</artifactId> <version>1.1.1</enter code hereversion> <configuration> <assembleDirectory>target</assembleDirectory> <programs> <program> <mainClass>com.example.Main</mainClass> <name>main</name> </program> </programs> </configuration> <executions> <execution> <phase>package</phase><goals><goal>assemble</goal></goals> </execution> </executions> </plugin> </plugins> </build>
Procfile
:worker: sh target/bin/main
提交更改并推送到 Heroku 的遥控器。
缩放测功机使其不会进入睡眠状态(考虑到您的项目有最大小时数):heroku ps:scale worker=1
【讨论】:
【参考方案2】:解决了这个问题 - 找到了解决方法。将其打包为 .jar 文件,并意识到 Procfile 实际上只是一个命令提示符。使用具有文本工作者的 Procfile 将 jar 上传到 GitHub:java -jar Jar.jar。即使我没有得到答案,也感谢任何花时间看这个问题的人
【讨论】:
以上是关于在heroku上部署了discord bot,bot不会上线的主要内容,如果未能解决你的问题,请参考以下文章
在 Heroku 上部署 node.js 应用程序(discord.jd bot)导致错误
Heroku Discord Bot 构建但在部署时无法工作