我觉得这个问题有点愚蠢,但我不知道如何添加一个单一的依赖(jdom.jar)到另一个jar。
内容:我们为我们的应用程序开发了一个简单的插件,这个插件有很多依赖项。我们使用fatjar将jdom.jar包含到其中。我试图修复这个插件中的一个bug,所以我决定同时将其“maven化”。(我们刚刚切换到maven)这个插件加载在运行时,所以我们唯一希望打包的依赖项是jdom.jar。
问题:我发现有一个maven fatjar插件!不幸的是,我找不到任何文档,这个maven插件将每个依赖项添加到输出jar中。经过多次尝试,我决定给予这个fatjar插件,并寻找另一个。我找到了一个jar,shade,但在快速阅读后,他们看起来像他们添加了每个依赖项。
问:什么是一个简单的方法来只添加jdom.jar到我的插件jar中,像这样:
-MyPlug-in.jar
|
|-src
|-main
|-java
|-*.java
|-jdom.jar
字符串
我也不想改变清单或输出jar文件名
非常感谢你的时间。
4条答案
按热度按时间t8e9dugd1#
关于如何使用maven在
maven-shader-plugin
中包含一个jar文件,这里没有答案。我花了一些时间才弄清楚如何实际做到这一点。这里有一个片段,只包含依赖项com.googlecode.json-simple:json-simple
中的类。字符串
zqry0prt2#
出于这种目的,我建议使用maven-shade-plugin,它将创建一个可以以多种方式控制的uber-jar。使用shade plugin you can exclude things,你不喜欢。但这可能是由于没有使用单独的maven模块,你可以控制依赖项。
44u64gxh3#
使用maven Shade可以很好地工作,一个jar也可以完成这项工作。但是我们最终决定在扩展中打包jdom是一个不好的做法。
所以我们要这样做:
字符串
lib文件夹中的jar将动态加载,如果扩展无法在libs文件夹中找到适当的libs,则不会加载。
对于那些希望解决我的主要问题的人,请查看@khmarbaise答案。
kgsdhlau4#
我遇到了一个问题,Maven Shade Plugin包含了Uber Jar中的所有依赖项(来自父
pom.xml
和子模块pom.xml
文件),导致了各种冲突。我只想为子模块包含一个依赖项(GSON),我设法做到了以下几点:字符串