我正在使用 jetty-runner.jar 将 Spring MVC 应用程序部署到 Heroku,但在部署中出现错误。
Heroku 日志仅显示:
Error: unable to access jarfile target/dependency/jetty-runner.jar
State changed from starting to crashed
Process exited with status 1
但是,如果我使用以下任一方式在本地运行该应用程序,则该应用程序可以正常工作:
heroku local web -f Procfile.windows
or
java -jar target\dependency\jetty-runner.jar target\*.war
运行“mvn package”命令时,“target/dependency/jetty-runner.jar”下的文件在我的计算机中正确创建。
我的 Procfile 看起来像这样:
web: java $JAVA_OPTS -jar target/dependency/jetty-runner.jar --port $PORT target/*.war
我的 pom.xml 文件和项目代码位于:https://github.com/gfigueroa/nlp-tools-spring-heroku https://github.com/gfigueroa/nlp-tools-spring-heroku
额外细节
我运行了命令heroku run ls target
部署后,它只显示.war
文件。这dependency
部署时未创建文件夹,即使是在本地打包项目时也是如此。
Your maven-clean-plugin
正在删除jar
文件输入dependency
当您尝试构建应用程序时的目录和其他必需目录Heroku
.
您可以删除maven-clean-plugin
in the pom.xml
或者你可以修改它。
最好的选择是删除 pom.xml 中的以下插件
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>clean-jar-artifacts</id>
<phase>install</phase>
<goals><goal>clean</goal></goals>
<configuration>
<excludeDefaultDirectories>true</excludeDefaultDirectories>
<filesets>
<fileset>
<directory>target</directory>
<excludes>
<exclude>*.war</exclude>
</excludes>
</fileset>
</filesets>
</configuration>
</execution>
</executions>
</plugin>
或者您可以排除dependency/*.jar
只需添加即可删除<exclude>..</exclude>
如下指定的标签。但此选项可能会删除成功部署应用程序所需的其他所需文件夹。所以我不会推荐这个。
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>clean-jar-artifacts</id>
<phase>install</phase>
<goals>
<goal>clean</goal>
</goals>
<configuration>
<excludeDefaultDirectories>true</excludeDefaultDirectories>
<filesets>
<fileset>
<directory>target</directory>
<excludes>
<exclude>*.war</exclude>
<exclude>dependency/*.jar</exclude>
</excludes>
</fileset>
</filesets>
</configuration>
</execution>
</executions>
</plugin>
看这个page https://maven.apache.org/plugins/maven-clean-plugin/examples/delete_additional_files.html了解更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)