当前位置: 首页 > 知识库问答 >
问题:

在docker中使用外部jar依赖

谷彦君
2023-03-14

我尝试过在IntelliJ的project structure下通过库添加JAR,并只在根目录下的libs文件夹中添加JAR。首先,我提供了绝对路径,但后来我将其更改为${basedir},因为绝对路径没有映射为docker容器上的卷。有什么方法可以将外部jar与项目jar打包,以便在docker容器中使用它?

共有1个答案

谷泽宇
2023-03-14

IIUC您至少有两种选择:

假设JAR位于主机上的${PWD}/JARs中,并且希望它们位于容器中的${WORKDIR}/JARs中:

FROM [[original-image]]
WORKDIR ...
COPY ./jars ./jars

然后,确保代码通过[[WORKDIR]]/JARs/[[some-jar]]引用JAR

docker run ... --volume=${PWD}/jars:[[WORKDIR]]/jars ...
 类似资料:
  • 我有一个正在使用jar的项目a,比如(其中B是在项目a中用作依赖项的另一个项目),现在有一个(类似于缓存),它在映射中保存所需的所有数据。这个映射bean被project(在我的项目中作为包含)使用,即B来读取缓存属性,但我无法这样做,有什么帮助吗? 项目B的webapp-config.xml 上面的bean b2必须在外部项目B中使用(作为jar包含在我的项目A中)。 但我得到了 任何帮助都将不

  • 我在我的项目中使用了maven shade插件将所有依赖项jar类重新定位到一个包下,例如org.shade.* 当我试图在其他应用程序中使用带阴影的jar作为maven依赖项时,它会拉出依赖项jar的。 我的期望是,当Uber/shaded jar包含为maven依赖项时,它不应该拉出任何其他依赖类jar,因为这些类已经在shaded jar中重新打包了。

  • 有可能在Tomcat中部署一些java war或jar文件吗?我找了很多教程,我找到的唯一解决方案是将项目war文件复制到中。 我实际上使用了这个解决方案,但我想改进我的文档化。我的主要目标是当我用docker-comush运行我的两个映像(tomcat和db映像中的应用程序)时,我想使用tomcat中目标文件夹的本地war文件,当我在代码更改后再次构建war时,该更改将在不停止容器、删除和重建的

  • 我正在完成一个项目,我必须将它部署为一个jar文件,在eclipse中它工作得很好,我的项目依赖于两个库,这两个库也都依赖于dll文件。我已经将这些DLL的路径添加到每个外部JAR的本机库位置。然后,我使用eclipse可运行的jar文件导出向导将project导出为一个jar文件我在指定的位置得到了jar文件,它运行了,但是当我单击一个调用我得到的库之一的按钮时,我得到了java.lang.Un

  • 我有一个插件文件夹,其中包含一些JAR,我想加载它们的所有*。班我看到很多关于或的答案。然而,我想用java来实现这一点。nio包而不是io。 我能做的是: 使用 我还不能做的事: 使用NIO在JAR/ZIP中列出文件 最终,我想要: 在几个JAR中遍历每个类,并加载它们以寻找一种插件系统的注释 我应该补充一点,我不需要一个使用像番石榴或阿帕奇这样的应用编程接口的工作解决方案,但我只想知道它是如何

  • 我正在尝试在服务器上运行hadoop作业。版本为。 我有一大堆罐子,我在运行: 即使对应的类在JAR中,我也会得到下面的错误: 线程“main”java.lang.noClassDeffounder中出现异常错误:org/apache/avro/mapreduce/avrokeyInputFormat在generateTrainningData.main(generateTrainningData