【发布时间】:2013-07-21 20:19:17
【问题描述】:
我正在使用 Maven 程序集插件,我使用它生成单个 Jar 文件,其中包含我的应用程序的所有依赖项(根据 jarlib.xml 中的定义解包:https://gist.github.com/knyttl/7cc0730ae0fb6947cbda)。这个dependency.jar 然后可以用我的application.jar 放在类路径上,并以java -cp application.jar:dependencies.jar my.class.Runner 运行。然而,当解压 jars 时,问题是相同工件的多个版本。
例如,我使用的是 org.apache.xmlrpc:xmlrpc-server:jar:3.1.3,它依赖于 javax.servlet:servlet-api:jar:2.3。在我的应用程序中,我需要使用不同的、较新版本的 javax.servlet,但是在解包时,会跳过新版本并使用旧版本。
- 有没有办法忽略
xmlrpc-server给出的依赖关系? - 有没有办法优先考虑较新版本的
javax.servlet? - 有没有一种方法可以创建单个 jar 而无需解压依赖项并能够将它们与
-cp application.jar:dependencies.jar一起使用?当我尝试在不解包的情况下构建 jar 时,运行应用程序时没有找到任何内部 jar 类。
【问题讨论】:
标签: maven jar classpath dependency-management