Почему герои не запускают мое развертывание, но работают локально, просто отлично? - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь развернуть бота 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>

Я ожидаю, что обе стороны, клиент и сервер, будут работать одинаково.Но Героку делает что-то подозрительное, и я не уверен, что это такое.

...