我有一个使用libosm-2.5.2-RC1库的Maven项目。该库包含渗透库。下载libosm时,渗透库已打包在libosm库的jar文件中。问题是该渗透库很旧,无法使用当前的OSM数据。在maven中,我可以添加新版本的渗透作为依赖项,如果我将它放在libosm库之前的POM文件中,则将使用新渗透的新类。但是,当我构建项目时,两个库都包含在lib文件夹中。部署后,tomcat服务器将使用libosm中包含的旧渗透。

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

一种有效的解决方案是手动解包libosm的jar文件,并用新的重写渗透类。但是我想用Maven达到相同的目的,因为我想共享该项目,而其他人不愿意手动添加我创建的更新的jar libosm文件。

最佳答案

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

09-12 02:59