链接maven依赖于非maven项目

时间:2013-03-31 00:39:55

标签: java eclipse maven

我在Eclipse中有两个项目,第一个项目依赖于maven,第二个依赖于第一个项目的项目不依赖于maven。

第一个项目将外部库(如jar文件和本机)下载到.m2 maven文件夹中。但是第二个项目提供了ClassNotFoundException,因为它无法从第一个项目中找到jar文件和本机文件。

是否可以将这些下载的jar + dll链接到第二个项目,而无需在第二个项目属性中的构建路径 - &gt;库中引用?< / p>

我将不胜感激。

2 个答案:

答案 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。)