1

我有一个使用 libosm-2.5.2-RC1 库的 maven 项目。该库包含渗透库。下载 libosm 时,osmosis 库已经打包在 libosm 库的 jar 文件中。问题是这个 osmosis 库太旧了,不能处理当前的 OSM 数据。在 maven 中,我可以添加一个新版本的 osmosis 作为依赖项,如果我将它放在比 libosm 库更早的 POM 文件中,则使用来自新 osmosis 的较新类。但是,当我构建项目时,两个库都包含在 lib 文件夹中。并且部署完成后,tomcat 服务器使用的是 libosm 中打包的旧 osmosis。

我想要实现的是使用 libosm 库,但是如果 libosm 和新渗透库中都有类,那么我想使用新渗透库中的类。

一种可行的解决方案是手动解压缩 libosm 的 jar 文件并用新的渗透类重写旧的渗透类。但是我想用 maven 实现同样的事情,因为我想共享项目,并且其他人手动添加我创建的更新的 jar libosm 文件并不方便。

4

1 回答 1

0

如果您不需要 libosm-2.5.2-RC1 中的类,并且如果您知道不希望作为此 jar 一部分的包/类,则可以在 maven-jar-plugin 的包阶段将它们剥离. 此链接显示了如何执行此操作。让我知道这是否有帮助。http://maven.40175.n5.nabble.com/Excluding-packages-and-classes-from-jar-td106688.html

于 2013-05-29T00:18:34.110 回答