我有一个.jar,它在Maven Central或其他任何其他位置都没有,我猜Maven默认会从中取出。对于我的本地设置,我将它安装到我的本地Maven存储库,之后它运行良好(在import another jar's program into my jar中讨论) - 这意味着我在IntelliJ中的import语句现在工作正常。
但现在我需要将我的应用程序部署到Heroku。所以我有点困惑:如果我保持原样,Heroku构建将失败Could not find artifact com.my.company:MyJar:jar:1.0
。但我在我的应用程序中需要这样或那样的jar,所以我不认为摆脱依赖是要走的路。
我不确定从哪里开始。我可以直接在我推送到Heroku的文件中使用.jar,但我想我需要一种方法在pom.xml中指定一些内容,例如"将以下目录视为存储库。"但我不确定这是否正确。
答案 0 :(得分:0)
这种类型的JAR文件称为非托管依赖项。 Heroku有a guide for vendoring JARs like this in your Git repo。
简而言之,您运行如下命令:
$ mvn deploy:deploy-file -Durl=file:///path/to/yourproject/repo/ -Dfile=mylib-1.0.jar -DgroupId=com.example -DartifactId=mylib -Dpackaging=jar -Dversion=1.0
并将文件系统设置为pom.xml
中的存储库,如下所示:
<repositories>
<repository>
<id>project.local</id>
<name>project</name>
<url>file:${project.basedir}/repo</url>
</repository>
</repositories>