如何解决如何在 Heroku 中使用外部库运行 Java/Maven 应用程序?
我一直在构建一个 Java 应用程序,它在本地执行时按预期运行。现在我正在尝试下一步,将其移至外部平台。我选择 Heroku 是因为他们的入门计划是免费的,还因为它让我拥有一个小型 PostGresql 数据库,我可以将它与应用程序一起使用。
由于 Heroku 的工作方式,我被迫将 Java 与 Maven 集成,而我对此知之甚少。但在我能够编译和部署应用程序(源代码在 GitHub 中)之前,我仍然能够按照自己的方式工作,尽管有错误。
有一次,我使用了几个外部库:
每当在 Heroku 中部署应用程序时,线程“main”java.lang.NoClassDefFoundError: org/jsoup/Jsoup 中都会出现异常,最终由 Jsoup.connect
调用触发。据我了解,Maven 只添加了对程序的引用,但不包括运行时的实际库,我认为这可能是问题的原因。
我尝试通过手动添加这些依赖项来修改我的 pom.xml
文件:
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.18</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.13.1</version>
</dependency>
</dependencies>
以及构建部分中的这些插件:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>checker</finalName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
</execution>
</executions>
</plugin>
我做错了什么?我将非常感谢帮助我运行应用程序的提示,至少可以解决 Jsoup 在 Heroku 中根本无法运行的原因。提前致谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。