Я пытаюсь развернуть бота Discord, используя Java со сборкой Maven, в Heroku.Я использую maven для создания толстого jar-файла, на который есть ссылка в procfile, я не счел необходимым добавлять атрибут manifest и просто использовал Jar в качестве пути к классам.Локальный запуск приложения не представляет проблем, но запуск его на сервере во время развертывания приводит к появлению (в журналах heroku):
Error: Could not find or load main class com.alejandro.uwubot.Main
Я попытался собрать Jar локально (по-видимому, Heroku создает сам проект сервера -сторона, а локально созданные файлы не фиксируются).Я пытаюсь открыть локально сделанный Jar, и все кажется нетронутым и все в порядке, поэтому оно должно быть одинаковым, так как один и тот же файл pom.xml должен быть запущен как на стороне сервера, так и на стороне клиента.Я запускаю heroku local worker
, и он работает отлично.Я делаю только то, что нужно для развертывания.git add .
, git commit -m "message"
и git push heroku master
.И, похоже, работает, говоря, что сборка каждый раз была успешной.
Вот прокфайл.Он просто использует толстую банку в целевом каталоге Maven в качестве classpath и использует полное имя моего основного класса
worker: java -cp target\uwu_bot-0.0.1-SNAPSHOT-jar-with-dependencies.jar com.alejandro.uwubot.Main -Xdiag
А вот тег <build>
файла pom.xml, который использует плагин сборки для созданияэта толстая банка.
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Я ожидаю, что обе стороны, клиент и сервер, будут работать одинаково.Но Героку делает что-то подозрительное, и я не уверен, что это такое.