我在Eclipse中有两个项目,第一个项目依赖于maven,第二个依赖于第一个项目的项目不依赖于maven。
第一个项目将外部库(如jar文件和本机)下载到.m2 maven文件夹中。但是第二个项目提供了ClassNotFoundException,因为它无法从第一个项目中找到jar文件和本机文件。
是否可以将这些下载的jar + dll链接到第二个项目,而无需在第二个项目属性中的构建路径 - &gt;库中引用?< / p>
我将不胜感激。
答案 0 :(得分:2)
在Maven项目中,使用Assembly插件创建一个Uber-jar,其中包含项目构建工件及其所有依赖项(mvn assembly:assembly -DdescriptorId=jar-with-dependencies
)。然后,从项目#2引用,使用相对路径或使用ant构建任务将其复制到您的其他项目的lib目录中(假设您有这样的目录)。此外,虽然它不受欢迎,但您可以配置程序集插件,以便Uber jar工件始终具有相同的finalName
。
答案 1 :(得分:1)
是否可以将这些下载的jar + dll链接到第二个项目,而无需在第二个项目属性中的构建路径 - >库中引用?
我不这么认为。
但也许你可以创建一个第三个项目(这是一个Maven项目),它取决于第一个项目,以及第二个项目创建的JAR(或其他)文件作为非存储库依赖项。
话虽如此,你所做的任何事情都会变得有点黑客。您最好将第二个项目转换为适当的Maven项目,或者创建一个自定义构建脚本,从某个地方手动提取第二个项目的依赖项。 (我认为Ivy可以帮助你...假设你在第二个项目中使用Ant。)